我使用XamDataGrid来显示带有非常长的标题名称的表。标头名称中最重要的部分是后缀。

有什么方法可以配置列标题,即当列宽短于文本大小时,我会看到后缀作为标题吗?

例:

所需结果:

[...SUFFIX1][...SUFFIX2]


代替默认行为,我有:

[Prefix....][Prefix....]

最佳答案

一种方法是为LabelPresenter创建ContentTemplate:

<Setter Property="ContentTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <TextBlock VerticalAlignment="Stretch" HorizontalAlignment="Stretch" FlowDirection="RightToLeft"  Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}"
TextTrimming="CharacterEllipsis">

                            </TextBlock>

                        </DataTemplate>
</Setter.Value>


结果看起来像:

c# - Infragistics XamDatagrid列从左到右调整大小-LMLPHP

要显示后缀部分,可以使用文本包装和增加LabelPresenters的高度来包装文本。这是显示整个列名的一种更好的方法,并且看起来也不错。(显然,这符合您的目的)

<Setter Property="Height" Value="50"/>


在样式中设置labelPresenter的高度和结果如下:

c# - Infragistics XamDatagrid列从左到右调整大小-LMLPHP

但是,如果您严格按照您的要求进行操作,请在下面的链接中使用控件,然后在标签演示者的内容模板中使用该控件。

Textbox with ellipsis

关于c# - Infragistics XamDatagrid列从左到右调整大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34066431/

10-09 02:37