我正在尝试在WPF应用程序中设置元素,但无法使TextTrimming
上的TextBlock
正常工作。这是ScrollViewer
。我目前正在使用DockPanel
作为内部容器。
我搜索了很多,但没有发现解决这个问题的问题。
容器的XAML:
<Grid>
<ScrollViewer>
<DockPanel Name="listedCharacters" LastChildFill="False"></DockPanel>
</ScrollViewer>
</Grid>
子元素的XAML(按代码添加):
<UserControl …>
<Grid DockPanel.Dock="Top" HorizontalAlignment="Stretch">
<TextBlock Text="{Binding FullName}" TextTrimming="CharacterEllipsis" />
</Grid>
</UserControl>
第一个问题是,无论我使用DockPanel
还是StackPanel
作为内部容器,子元素的宽度似乎都由其内容(TextBlock
s)决定而不是由父ScrollViewer
约束。
我想要的效果是当Window的网格列(代码中未显示)比绑定文本更窄时,省略号会截断每个TextBlock
的内容。基本上,一个列表在需要时垂直滚动,并在水平方向上修剪(我认为这应该足够常见,答案就在那里;唉,不)。
我相信我需要使用我自己的UserControl,因为还有很多事情要比她显示的要多;右键单击列表中项目的菜单等。
次要问题,如果要使用的最佳面板是DockPanel
,那么在动态添加元素时如何应用DockPanel.Dock="Top"
代码(C#)?再一次,我找不到任何似乎可以解释这一点的东西。 (我知道它可能在上面的示例代码中的错误位置。)