2013-02-20 133 views
1

我试图将TextBox的BorderBrush颜色更改为默认值。看完ControlTemplate后,似乎没有指定默认颜色。任何想法默认颜色是什么?如何将BorderBrush颜色更改为默认值

This似乎是ControlTemplate。

我发现无数的例子为XAML,但我需要这在做后台代码如下所示:

txtValue1.BorderBrush = Brushes.Gray; 
+0

我想添加到我的答案:没有真正正确的默认值,模板显示为BorderBrush =“{StaticResource SolidBorderBrush}”,而这是一个刷子,你会发现在该页面上较低,它是刷一个主题,所以它可能在不同的PC上是相同的,这取决于所使用的Windows版本或更精确地使用的主题。 – dowhilefor 2013-02-20 11:48:19

回答

4

如果你真正想要的属性的默认值,调用

txtValue1.ClearValue(Border.BorderBrushProperty); 

但是这会改变属性回到它的初始值(在这种情况下,我会猜测黑色或透明)。 我不确定,但我想你想让原来的颜色给当前使用的主题。因此,如果您希望清除本地更改,则可以使用GetLocalValueEnumerator并查询所有本地设置属性,并查找要清除值的属性。但是,如果您对所使用的元素有自定义样式,并且想要将其中一个属性还原出来,我认为这不太可能。

对于这个问题,this是一个重要的阅读。

+0

+1为您的伟大答案,谢谢! – 2013-02-20 11:49:28