我有一个视图。视图中的轴网分为两列。
<Grid x:Name="grdView">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
在Auto列(第0列)中,我有另一个视图
<Border Grid.Column="0" Style="{DynamicResource BorderStyle}">
<Views:ViewerDataBrowser x:Name="dataBrowser" DataContext="{Binding ViewDataBrowserInstance}" />
</Border>
在这个视图中,我有一个列表框和一个为列表框定义的数据模板。在数据模板中,我有2行,每行有2个文本块。
问题
当文本块字符超过列的宽度时,列表框将被拉伸,同时还会显示滚动条。我不希望发生这种事。我希望文本被截断并显示。。。最后。
我尝试了文本块的文本修剪和文本换行。但这并没有奏效。我还尝试将数据模板的宽度设置为Auto,但它不起作用。对我来说,唯一可行的解决方案是将数据模板的宽度设置为常数值。
我希望列表框适合网格,即使文本块有很长的文本,也不显示滚动条。请提出解决方案。
您可以获取并设置listBox的horiztonalScrollBar属性,如MSDN网站上所述。设置listBox的宽度(预uwp)时,可以使用与设备无关的像素(DIP)。此外,您可以将宽度设置为与listBox容器的宽度成比例,而不是使用常数——尽管不建议使用DIP和自动调整大小,因为某些尺寸表现得更好。
问题是由于网格的列宽设置为"*"而引起的。当我把列宽改为常量时,这个问题似乎已经解决了。
关于文本块的截断,我设置了文本框修剪属性。