有没有一种简单的方法可以让 TextTrimming 与 ContentPresenter 一起使用?
我有 TextBlock 和 AccessText 的隐式样式,其中 TextTrimming 设置为 CharacterEllipsis,但 ContentPresenter 没有拾取它。我可以将 ContentPresenter 更改为 AccessText 或 TextBlock 并将其设置在那里,但模板仅处理文本内容。
有什么建议么?
Thanks!
如果元素是在控件的模板中定义的,则不会应用从 UIElement(而非 Control)派生的元素的隐式样式unless隐式样式在应用程序资源中定义。对于 ContentPresenter 使用的文本块也是如此。
例如,在以下 XAML 中,最终用于呈现按钮内容的 TextBlock 将not获取隐式样式:
<Window.Resources>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="Red" />
</Style>
</Window.Resources>
<StackPanel>
<Button Content="Will not be red" />
<TextBlock Text="Will be red" />
</StackPanel>
如果您采用完全相同的样式并将其移动到应用程序的资源中,那么两者都将变成红色:
<Application.Resources>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="Red" />
</Style>
</Application.Resources>
因此,您可以将隐式样式移至应用程序资源,这通常不是一个好主意。或者您可以根据您的具体情况自定义显示。这可以包括添加隐式 DataTemplate,或自定义控件的模板。
如果您可以提供更多信息,那么会更容易知道哪种方法是最好的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)