gpt4 book ai didi

c# - WPF:ContentPresenter 上的 TextTrimming

转载 作者:太空狗 更新时间:2023-10-29 17:43:50 26 4
gpt4 key购买 nike

有没有简单的方法让 TextTrimming 与 ContentPresenter 一起工作?

我有将 TextTrimming 设置为 CharacterEllipsis 的 TextBlock 和 AccessText 的隐式样式,但它没有被 ContentPresenter 拾取。我可以将 ContentPresenter 更改为 AccessText 或 TextBlock 并将其设置在那里,但模板仅处理文本内容。

有什么建议吗?

谢谢!

最佳答案

如果元素是在控件的模板中定义的,则不会应用从 UIElement 而不是 Control 派生的元素的隐式样式除非隐式样式是在应用程序资源中定义的。这同样适用于 ContentPresenter 使用的 TextBlock。

例如,在下面的 XAML 中,最终用于呈现按钮内容的 TextBlock 将不会获得隐式样式:

<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>

因此您可以将隐式 Style 移动到应用程序资源,这通常不是一个好主意。或者您可以为您拥有的特定场景自定义显示。这可以包括添加隐式 DataTemplate,或自定义控件的模板。

如果您可以提供更多信息,那么就更容易知道哪种方法是最好的。

关于c# - WPF:ContentPresenter 上的 TextTrimming,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5810919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com