将控件的颜色更改为默认颜色
本文关键字:颜色 默认 控件 | 更新日期: 2023-09-27 18:25:16
我确实有一个文本框。当出现错误时,我将borderbrush设置为新的SolidColorBrush(Colors.Red)。当错误修复后,我想切换到文本框边框的默认颜色。我在codebehind而不是xaml中做这件事。
然而,它依赖于系统。我注意到有类似的东西
SystemColor.ActiveControl等。我应该使用这些吗?如果是,哪一个是文本框的默认边框?
我还注意到有一些类似于Textbox.borderbrushproperty.defaultmetadata.defaultvalue的东西,但我没有成功。
你知道如何切换到默认borderbrush吗?非常感谢。
你必须在代码背后完成吗?如果没有,您可以使用Trigger
,它只会在满足触发条件时更改边框颜色。
<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>
为什么不在启动时保存初始值并使用它?您应该能够使用系统颜色,但如果您更改默认颜色,这将继续工作。
private Color _defBtnColor;
public MyUserControl()
{
_defBtnColor = someButton.Foreground;
}
private void SetBackToDefault()
{
someButton.Foreground = _defBtnColor;
}
尝试:
control.BackColor = Color.FromKnownColor(KnownColor.Window);
有关详细信息,请参阅MSDN上的Color.FromKnownColor。
也许我参加派对有点晚了,但我想你在问如何将颜色更改为系统默认控制?
someControl.BackColor = SystemColors.Control;
或
sslEditMode.BackColor = SystemColors.ButtonFace;