2010-07-15 145 views
3

在Windows Phone 7中,具有IsReadOnly属性的文本框在运行时(至少在Beta模拟器中)设置为true,即使将背景颜色设置为黑色并将前景色设置为白色,背景仍然为前景灰色字符浅灰色。我需要改变它,所以它是可读的!如何在ReadOnly文本框中更改背景/前景色?

那么有没有办法来覆盖这个?

我试着将它设置为文本框加载事件中的其他东西,但它没有奏效。显然,将ReadOnly设置为true会将前景/背景色设置为石头。

这里是一些代码来改变颜色,如果他们能够被改变:

SolidColorBrush ForeBrush = new SolidColorBrush(); 
SolidColorBrush BackBrush = new SolidColorBrush(); 
ForeBrush.Color = Colors.White; 
BackBrush.Color = Colors.Black; 
txtFrom.Foreground = ForeBrush; 
txtFrom.Background = BackBrush; 

回答

3

我认为,文本框的模板包含只读文本框的视觉风格。因此你不能设置其他风格。 但你可以尝试也改变模板文本框任何其他Silverlight控件:

<TextBox ..> 
    <TextBox.Template> 
    ... 
    </TextBox.Template> 
</TextBox> 
+0

我可以告诉的最好的是,这是正确的,ReadOnly样式不能被覆盖 - 我有建议使用Blend来做到这一点,但我甚至无法让Blend做到这一点。在这件事情上,我结束了另一条路线,并写了一个自定义控件来做我想做的事。 – Cyberherbalist 2010-09-10 20:41:16

0

您可以将空白ManipulationStarted事件附加到文本框中,然后你就不必设置isreadonly真。这是一个黑客攻击,但会达到目的。

相关问题