【发布时间】:2010-03-19 15:03:47
【问题描述】:
WPF Label 是否可以自动拆分为多行?在下面的示例中,文本在右侧被裁剪。
<Window x:Class="..." xmlns="..." xmlns:x="..." Height="300" Width="300">
<Grid>
<Label>
`_Twas brillig, and the slithy toves did gyre and gimble in the wabe:
all mimsy were the borogoves, and the mome raths outgrabe.
</Label>
</Grid>
</Window>
我是不是做错了什么?
不幸的是,采用其他控件不是一个好的选择,因为我需要访问键的支持。
将Label 替换为TextBlock(具有TextWrapping="Wrap"),并调整其控制模板以识别访问键可能是一种解决方案,但这不是矫枉过正吗?
编辑:标签的非标准样式会破坏蒙皮,所以如果可能的话,我想避免它。
【问题讨论】:
-
使用 TextBlock 代替 Label 似乎是一个简单的解决方案。如果它有效并且不会显着增加代码的大小,它并不过分。有时使用 WPF,不清楚为什么存在某些东西,比如为什么同时有 Label 和 TextBlock,而在所有相关情况下都可以只使用 TextBlock。
-
@kmontgom:确实
TextBlock和Label是不同的野兽:请参阅一篇关于它的好文章joshsmithonwpf.wordpress.com/2007/07/04/…。我认为必须有一个比替换控件模板更简单的解决方案(例如,因为这可能会破坏蒙皮)。 -
感谢您的链接。好点。这告诉我,也许应该将换行功能添加到 的功能
-
@kmontgom:不客气。就我而言,我也认为不允许标签更高级是没有意义的。
标签: .net wpf wpf-controls line-breaks