ScrollViewer面板中的TextTrimming

时间:2014-07-12 12:57:14

标签: wpf xaml scrollviewer texttrimming

我正在尝试在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#)?再一次,我找不到任何似乎可以解释这一点的东西。 (我知道它可能在上面的示例代码中的错误位置。)

0 个答案:

没有答案