我有一个观点。视图中的网格分为2列。
<Grid x:Name="grdView">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
在自动列(第0列)中,我有另一个视图
<Border Grid.Column="0" Style="{DynamicResource BorderStyle}">
<Views:ViewerDataBrowser x:Name="dataBrowser" DataContext="{Binding ViewDataBrowserInstance}" />
</Border>
在此视图中,我有一个列表框和为列表框定义的数据模板。 在数据模板中,我每个都有2行和2个文本块。
问题
当文本块字符大于列的宽度时,列表框将被拉伸并且还会显示滚动条。我不希望这种情况发生。我希望文本被截断并在最后显示....
我尝试了文本块的文本修剪和文本换行。但它没有用。我还尝试将数据模板的宽度设置为自动,但它无法正常工作。唯一可行的解决方案是将数据模板的宽度设置为常量值。
我希望列表框适合网格内部而不显示滚动条,即使文本块有冗长的文本。请提出解决方案。
答案 0 :(得分:1)
您可以按MSDN site所述获取并设置listBox的horiztonalScrollBar属性。设置listBox(pre-uwp)的宽度时,可以使用device independent pixels(DIPs)。此外,您可以将宽度设置为与listBox容器的宽度成比例,而不是使用常量,但不建议使用DIP和自动调整大小,因为某些维度的行为更好。
答案 1 :(得分:0)
问题是由于网格的列宽设置为&#34; *&#34;而引起的。 当我将列宽更改为常量,即与父级的宽度相同时,问题似乎是固定的。
关于截断文本块,我设置了文本框修剪属性。