2010-07-12 78 views
2

如何製作具有透明背景的禁用RichTextbox?WPF:替代RichTextBox樣式

我想使用RichTextBox來顯示一些豐富的文本,但使其禁用,所以文本無法編輯。我希望背景在禁用時是透明的,但默認行爲是禁用控件時使背景變灰。我嘗試過重寫ControlTemplate和Styles,但沒有運氣。

更新:只要我不設置IsEnabled =「False」,將透明背景設置爲很好。在基本ControlTemplate中有一個樣式觸發器,用於在禁用控件時重置背景,但我無法弄清楚如何覆蓋它。

回答

4
<RichTextBox Background="Transparent" IsReadOnly="True"> 

工作以及

this.richTextBox1.IsReadOnly = "true"; 

你並不需要使用IsEnabled屬性,因爲IsReadOnly不允許用戶進行交互,這是什麼你在哪裏找對的?

+0

+100如果我可以,像往常一樣,我試圖讓它比實際更難! :) – 2010-07-12 20:33:33

+0

我知道那是男人哈哈。 – Pieces 2010-07-12 20:36:38

+0

我被困在這個最長的時間,IsEnabled似乎打亂了很多格式化屬性 – BenW301 2015-04-01 16:15:40

2

您可以將RichTextBox的Background屬性設置爲透明。 HTH。

<Grid> 
    <Image Source="Resources/nelson.png" /> 
    <RichTextBox Background="Transparent" IsReadOnly="True"> 
     <FlowDocument> 
      <Paragraph>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et 
       dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, 
       no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy 
       eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et 
       ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur 
       sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et 
       accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</Paragraph> 
     </FlowDocument> 
    </RichTextBox> 
</Grid> 

alt text http://i30.tinypic.com/24mff49.png

+0

這不起作用,因爲只要我設置IsEnabled = false,背景就會變灰。這是在RichTextBox控件的ControlTemplate中設置的,但我無法弄清楚如何覆蓋它。 – 2010-07-12 20:25:42

+0

如果使用IsReadOnly = true而不是IsEnabled = false,則不適用。 – andyp 2010-07-12 20:36:31