- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
有没有简单的方法让 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/
我的布局有一个 3 列网格,每个网格的宽度设置为 Width="*" .对于中间(第二个)网格,我有另外 3 个列网格,每个网格都包含它自己的文本 block ,并且列网格宽度再次设置为 Width=
我需要做一个特殊的文本修剪。假设我的字符串是:abcd 默认修剪会给我这个:ab... 但我需要它。 a..d 知道如何实现吗? 目前我正在使用 最佳答案 我过去有过这种担忧,并编写了自己的转换器来
我使用 WPF Grid 作为窗口的布局。它有两列和任意数量的行。第一列专门用于标签,第二列用于用户输入字段(例如 TextBox、ComboBox 等)。我的要求是: 第一列的最小宽度必须为 50,
为什么 TextTrimming 适用于第一个 TextBlock 而不是第二个?我在我的 xaml 上使用 LineBreaks,这是我需要显示的文本的一部分。 代码:
我在 Windows Phone 中遇到了一个看似简单的布局问题。问题如下图所示: 我的要求如下: 副标题必须始终可见,但要以标题文本溢出为代价。 标题和副标题必须垂直和水平居中。 当我使用 Stac
有没有简单的方法让 TextTrimming 与 ContentPresenter 一起工作? 我有将 TextTrimming 设置为 CharacterEllipsis 的 TextBlock 和
我想将 TextTrimming 属性(CharacterEllipsis)应用于 WPF DataGrid 单元格中的文本。 我应用了自定义 DataGridCell 模板,如 this answe
我有一个带有 TextTrimming="CharacterEllipsis"、TextWrapping="NoWrap" 和大约 140 000 个符号的超长文本的 TextBlock。我将此文本放
当文本框中的内容太长时,我尝试添加后缀省略号,但我在 WP7 框架中找不到“TextTrimming”属性。是否有其他属性可以执行相同的功能?例如: “如果句子太大,我希望它以...结尾” 最佳答案
如果用户尚未指定值,我正在尝试获取 ValidationRule 以在有问题的组合框中显示文本。我可以让它显示,但我似乎无法使用 TextTrimming="CharacterEllipsis"让文本
Silverlight(至少从第 4 版开始)没有 TextTrimming 的 CharacterEllipsis 选项,WPF has .它可以用在 TextBlock 上。这意味着,如果没有足够
如果您运行此代码并最小化/最大化窗口的宽度 您将看到矩形将移动到左侧。 WPF 中存在错误吗? 最佳答案 我想这不是一个错误。尝试将 TextTrimming="Wo
我需要一个具有 TextTrimming 和 MaxLines 的 TextBlock 或 TextBox。 TextBlock 具有 TextTrimming 属性,TextBox 具有 MaxLi
我是一名优秀的程序员,十分优秀!