【问题标题】:Silverlight: CanGrow property for Checkbox text?Silverlight:复选框文本的 CanGrow 属性?
【发布时间】:2014-02-22 14:11:05
【问题描述】:

我有一个两列的网格(layoutroot)。我在每一列中都有一个复选框列表。如果选中了一个复选框,我需要在它下面添加一些文本。 我无法找到一种在复选框下方动态添加文本框的方法,该文本框不会与其下方的复选框重叠,因此我想添加要添加到 CheckBox 文本中的文本,当该文本超过宽度时,它应该移动到新行。

现在,情况并非如此。该复选框会修剪任何大于其宽度的文本。有没有办法让复选框像报告的“cangrow”属性一样增加高度?或者是否有一种解决方法可以让我在两个现有复选框之间添加一个文本框并垂直扩展布局?

提前致谢

【问题讨论】:

    标签: c# silverlight checkbox expand


    【解决方案1】:

    TextBlock 具有与您在报告中所说的“cangrow”类似的功能。它是TextWrapping 属性。因此,您可以将 CheckBox 的内容设置为TextBlock 控件,以实现那种不断增长的文本效果:

    <CheckBox>
        <TextBlock TextWrapping="Wrap" Text="Some long text here"/>
    </CheckBox>
    

    【讨论】:

    • 感谢您的回复,但这样我必须给文本块一个固定的高度,以适应所有预期的内容并根据该高度调整其他控件,问题是,我不知道内容的高度,例如,如果内容只有 1 行,我不想在复选框之间留下很大的空白空间。如何让包装的文本块增长以占用所需的空间并推动其他控件?
    • Textwrapping="Wrap" 如果超过可用的最大宽度,将自动换行到下一行。 Illustration。了解当文本需要多于单行时按钮高度如何自动增长。如果您将复选框放在适当的容器(例如堆栈面板)控件中,它将按您的预期推送。无需设置固定高度。
    • StackPanel 工作,我把它放在错误的容器中。非常感谢!
    【解决方案2】:

    在设计器中添加 TextBlock,然后将其可见性设置为折叠。然后当你想显示它时,将可见性设置为可见。

    <StackPanel>
    <Checkbox />
    <TextBlock x:Name="txtMessage" Visibility="Collapsed" Text="Your text here"/>
    </StackPanel>
    

    【讨论】:

    • 感谢您的回复。这解决了换行文本的问题,我还有两个问题:1-如何使这个文本块的高度动态?我的意思是内容不固定。 2-我也不希望这些文本块在它们展开以适应内容但向下推时与它们下方的其他复选框重叠。这有可能以任何方式实现吗?
    • 如果它们位于方向设置为“垂直”的堆栈面板中,它们将自动展开,因此它们将自动增长以适应内容而不是重叠。
    猜你喜欢
    • 1970-01-01
    • 2010-10-28
    • 2010-12-31
    • 2011-12-12
    • 2011-05-17
    • 1970-01-01
    • 2020-07-21
    • 2017-04-30
    • 1970-01-01
    相关资源
    最近更新 更多