c# - 将控件颜色更改为默认值

标签 c# .net wpf xaml

我有一个文本框。当出现错误时,我将 borderbrush 设置为新的 SolidColorBrush(Colors.Red)。修复错误后,我想切换到文本框边框的默认颜色。我是在代码隐藏中而不是 xaml 中执行此操作。

但是它取决于系统。我注意到有类似的东西

SystemColor.ActiveControl 等。我应该使用这些吗?如果是,哪一个是文本框的默认边框?

我还注意到有类似 Textbox.borderbrushproperty.defaultmetadata.defaultvalue 的东西,但我无法正常工作。

有什么想法如何切换到默认边框画笔吗?谢谢。

最佳答案

您必须在代码隐藏中执行此操作吗?如果没有,您可以使用触发器,它只会在满足触发条件时更改边框颜色。

<Style x:Key="MyTextBoxStyle" TargetType="{x:Type TextBox}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding ElementName=MyUserControl, Path=HasErrors}">
            <Setter Property="BorderBrush" Value="Red" />
        </DataTrigger>
    </Style.Triggers>
</Style>

关于c# - 将控件颜色更改为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9384793/

相关文章:

c# - RigidBody2D 卡住 X 位置

c# - 检查通用方法中包含哪些类型的枚举

c# - 目标机主动拒绝导致无法连接?

c# - 字典 - 文本框绑定(bind)不起作用

c# - 如果我在 NET Core 库中添加 PackageReference net46 会怎样?

c# - 验证规则未使用 2 个验证规则正确更新

c# - 替换缓存的设计模式

c# - 阻止 EF 尝试创建初始数据库

c# - 从 C++(MSVC 编译器)调用 C# dll

c# - 为什么我的 WCF 客户端在调用引发事件的 WCF 服务器中的方法后超时?