0

我正在尝试在 WPF 应用程序中设置一个元素,但无法让TextTrimmingsTextBlock正常工作。这是在一个ScrollViewer. 我目前使用 aDockPanel作为内部容器。

我已经搜索了很多,但没有找到解决这个问题的问题。

容器的 XAML:

<Grid>
  <ScrollViewer>
    <DockPanel Name="listedCharacters" LastChildFill="False"></DockPanel>
  </ScrollViewer>
</Grid>

子元素的 XAML(由代码添加):

<UserControl …&gt;
  <Grid DockPanel.Dock="Top" HorizontalAlignment="Stretch">
    <TextBlock Text="{Binding FullName}" TextTrimming="CharacterEllipsis" />
  </Grid>
</UserControl>

第一个问题是,无论我使用 theDockPanel还是 aStackPanel作为内部容器,子元素的宽度似乎都由其内容(TextBlocks)决定,而不是由 parent 约束ScrollViewer

TextBlock我想要的效果是当窗口的网格列(代码中未显示)比绑定文本窄时,省略号会截断每个的内容。基本上,一个在需要时垂直滚动并水平修剪的列表(我认为这已经足够普遍以至于答案就在那里;唉,不)。

我相信我需要为此使用我自己的 UserControl,因为发生的事情比向她展示的要多得多;右键单击列表中项目的菜单等。

第二个问题,如果要使用的最佳面板是,当动态添加元素时DockPanel如何应用直通代码(C#)?DockPanel.Dock="Top"同样,我找不到任何似乎可以解释这一点的东西。(我知道它可能在上面的示例代码中的位置错误。)

4

0 回答 0