Tho*_*ock 29 wpf user-controls default
我是WPF的新手.
目前我正在为名为"LabeledTextbox"的表单元素进行usercontrol,其中包含标签,文本框和错误消息的文本块.
当使用代码添加错误消息时,我想将文本框的边框设置为红色.但是,当错误消息被删除时,我想回到文本框的默认边框颜色.我觉得必须有一个非常简单的方法来做到这一点.
我的代码:
(在公共部分类LabeledTextbox:UserControl中)
public string ErrorMessage
{
set
{
if (string.IsNullOrEmpty(value))
{
_textbox.BorderBrush = Brushes.Black; //How do I revert to the original color in the most elegant way?
}
else
{
_textbox.BorderBrush = Brushes.Red;
}
_errorMessage.Text = value;
}
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*iel 46
你可以用
_textBox.ClearValue(TextBox.BorderBrushProperty);
Run Code Online (Sandbox Code Playgroud)
这将删除直接赋值,并返回样式或模板定义的值.
Bea*_*uty 11
您可以从SystemColors类中获取默认颜色
以下是所有系统颜色的列表:http: //msdn.microsoft.com/de-de/library/system.windows.systemcolors.aspx
客户区的默认背景颜色:
_textbox.Background = SystemColors.WindowBrush;
Run Code Online (Sandbox Code Playgroud)
客户区内的默认文本颜色:
_textbox.SystemColors.WindowTextBrush
Run Code Online (Sandbox Code Playgroud)
我可能会迟到,但对于未来的读者,你也可以用于Button.BackgroundProperty.DefaultMetadata.DefaultValue此目的。当您使用需要返回值并因此无法使用ClearValue()调用的转换器时,这尤其有用。
| 归档时间: |
|
| 查看次数: |
18245 次 |
| 最近记录: |