我正在尝试在 WPF 应用程序中设置一个元素,但无法让TextTrimming
sTextBlock
正常工作。这是在一个ScrollViewer
. 我目前使用 aDockPanel
作为内部容器。
我已经搜索了很多,但没有找到解决这个问题的问题。
容器的 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>
第一个问题是,无论我使用 theDockPanel
还是 aStackPanel
作为内部容器,子元素的宽度似乎都由其内容(TextBlock
s)决定,而不是由 parent 约束ScrollViewer
。
TextBlock
我想要的效果是当窗口的网格列(代码中未显示)比绑定文本窄时,省略号会截断每个的内容。基本上,一个在需要时垂直滚动并水平修剪的列表(我认为这已经足够普遍以至于答案就在那里;唉,不)。
我相信我需要为此使用我自己的 UserControl,因为发生的事情比向她展示的要多得多;右键单击列表中项目的菜单等。
第二个问题,如果要使用的最佳面板是,当动态添加元素时DockPanel
如何应用直通代码(C#)?DockPanel.Dock="Top"
同样,我找不到任何似乎可以解释这一点的东西。(我知道它可能在上面的示例代码中的位置错误。)