我是WPF的一名完整新手。WPF:恢復筆刷爲默認/原創
目前我正在爲名爲「LabeledTextbox」的表單元素進行一個用戶控件,該表單包含一個標籤,一個文本框和一個用於errormessages的文本塊。
當使用代碼添加errormessage時,我想將文本框的邊框置爲紅色。但是,當errormessage被刪除時,我想回到文本框的默認bordercolor。 我覺得必須有一個非常簡單的方法來做到這一點。
我的代碼:
(公共部分類LabeledTextbox:用戶控件)
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;
}
}
太好了,謝謝! *將dependencyproperty研究添加到待辦事項列表* – 2009-08-20 14:25:30
非常感謝,非常有用的文章。我嘗試使用brush.clone方法存儲默認的筆刷,但是根據.net,系統默認不存在筆刷。謝謝! – JustinKaz 2010-05-27 16:34:33
這對我不起作用。當我想要引起注意時,我將背景設置爲海藍寶石。我嘗試使用ClearValue將其還原回來,但仍保持爲海藍寶石。看看這篇文章:(http://wpf.2000things.com/tag/clearvalue/)告訴我,ClearValue將它恢復到最後指定的值。所以我試着將背景屬性設置爲Nothing,它工作。標籤背景現在是默認顏色。 – tolsen64 2015-04-09 17:27:04