【问题标题】:Silverlight 3 - Control over wrapping in TextBoxSilverlight 3 - 控制 TextBox 中的换行
【发布时间】:2011-02-04 20:10:49
【问题描述】:

好的,我在 Silverlight 中遇到以下问题。我有一个带有 2 列的控件。左侧是带有行号的堆栈面板,右侧是文本框。

因此,当我在未打开换行的情况下在 textBox 中书写时,我可以简单地在左侧创建正确的数字计数,因为我正在文本中搜索 '\r'。

但是当我打开换行时,我无法控制 textBox 中的行数。

有没有办法达到这个数量?或者一种知道 textBox 中哪一行要换行的方法?

我希望你能理解我想要做什么。

【问题讨论】:

    标签: silverlight silverlight-3.0 controls textbox word-wrap


    【解决方案1】:

    在将项目传递给视图之前,是否无法在代码中创建项目。这将使您能够将项目列表绑定到列表视图并根据需要设置它们的样式。

    【讨论】:

    • 是的,我在代码中创建它们,因为我知道文本框中的行数。但是,当我启用换行时,会因此创建新行,然后我就无法再获得正确的数字了。
    【解决方案2】:

    您需要使用值转换器来计算字符/行的数量,然后根据需要修剪该数字。除非您使用固定宽度,否则您无法真正计算或提前计算尺寸,因为每个应用程序的显示方式可能不同(由于不同的尺寸选项)。

    LearningWindosPhone.com 网站上有Windows Phone 上的two great sample chapters 和Windows Phone 上的Silverlight。有很棒的 Windows Phone Trainng material,别忘了Windows Phone Develoeprs Blog

    【讨论】:

    • 嗯,如果我使用所有字符宽度相同的字体,那么即使我有动态文本框,我也可以计算字符/行的最大数量。对吗?
    【解决方案3】:

    有一种方法可以做到这一点。您可以使用 TextBlock 在后台模拟自动换行操作。这是此问题的完整解决方案的一个很好的链接。

    Extended TextBox control with MaxLines property

    【讨论】:

      【解决方案4】:

      是的,有一种方法可以获取文本框中文本占用的行数。这并不是那么简单,因为您必须模拟自动换行的行为才能计算/预测由于自动换行而生成的行数。我有详细的solution described here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-24
        • 1970-01-01
        • 2016-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多