2010-07-15 131 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真。這是一個黑客攻擊,但會達到目的。