c# - 如何有条件地格式化 WPF TextBlock?

标签 c# wpf xaml

我有一个绑定(bind)到字符串的 WPF TextBlock。 如果该字符串为空,我希望 TextBlock 以另一种颜色显示警告消息。

这在代码中很容易做到,我想知道是否有一个优雅的 WPF 纯 XAML 解决方案? 我研究了 Style Triggers,但语法对我来说不是很自然。

谢谢!

最佳答案

Daniel's (slightly short) answer 添加一些细节因为一些需要的 DataTrigger 东西并不是很简单(比如 {x:Null}):

<TextBlock Text="{Binding MyTextProperty}">
    <TextBlock.Style>
        <Style TargetType="{x:Type TextBlock}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding MyTextProperty}" Value="{x:Null}">
                    <Setter Property="Text" Value="Hey, the text should not be empty!"/>
                    <Setter Property="Foreground" Value="Red"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>

顺便说一句:这完全是凭内存做的,没有在 VS 或 Blend 中检查,所以如果其中有错误,请原谅。但是,您应该能够自己解决它们。重要的是想法。祝你好运!

关于c# - 如何有条件地格式化 WPF TextBlock?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2717758/

相关文章:

wpf - 在 listItem wpf 中将按钮右对齐

c# - 使用存储库模式时 Entity Framework 不刷新数据

c# - WPF模糊文本框中的文本

wpf - 上下文菜单中子菜单项的命令绑定(bind)

c# - COM 技术的当前模拟是什么?

c# - AccessText 类的 WPF 使用和预期结果

c# - 在通用 Windows 应用程序中,如果 View 模型中的属性发生更改,如何使用 xaml 和数据绑定(bind)更改按钮的背景颜色

c# - 无法从远程设备连接到.Net Core API 服务器

c# - 使用 C++ 或 C# 打开之前的全局检测文件信息

c# - 在 MVC 3 中创建自定义数据注释验证