2013-02-20 80 views
4

需要文本框的半透明背景,並且文本內容應該顯示爲正常。具有半透明背景的文本框

風格可在資源字典存儲是好的。

注:

  1. 我的textBox是一個ContentControl中內包裹着。

  2. 這個類似的問題沒有幫助。 TextBox with a Transparent Background

+1

可以Background'屬性設置到''Transparent':'<文本框背景= 「透明」/>' – kmatyaszek 2013-02-20 16:34:13

+0

@kmatyaszek可以ü告訴我ħ在C#代碼中做到這一點? – dongx 2013-02-20 16:43:26

+0

我給你答案。檢查它:) – kmatyaszek 2013-02-20 16:49:55

回答

13

在XAML中,您可以設置Background屬性Transparent

<TextBox Background="Transparent" /> 

在代碼隱藏,你可以使用下面的代碼:

TextBox tb = new TextBox 
{ 
    Width = 100, 
    Background = Brushes.Transparent 
}; 

如果你想設置背景透明全部TextBox您可以使用以下風格:

<Style TargetType="TextBox"> 
    <Setter Property="Background" Value="Transparent" /> 
</Style> 
+0

它適用於單個文本框,但由於某些原因不適用於包裝在ContentControl中的文本框。不管怎麼說,還是要謝謝你。 – dongx 2013-02-20 17:37:08

+0

@dongx如果你給我看更多的代碼,我會試着找出爲什麼它不工作。我試着將'TextBox'包裝在一個'ContentControl'中,它在我的代碼中工作。 – kmatyaszek 2013-02-20 17:42:54

+0

你知道如何設置背景爲半透明嗎? – dongx 2013-02-20 18:33:58

1

如果你想設置一個半透明的背景後臺代碼,你可以做到這一點

使用依賴性道具上,從文本框繼承

public static readonly DependencyProperty BgColourProperty = 
    DependencyProperty.Register("BgColour", typeof(SolidColorBrush), typeof(myTextBox), null); 

public SolidColorBrush BgColour 
    { 
     get { return (SolidColorBrush)GetValue(BgColourProperty); } 
     set { SetValue(BgColourProperty, value); } 
    } 

然後設置你希望的任何顏色的類使用Color.FromArgb(),其中第一個參數是阿爾法分量

myTextBox.BgColour = new SolidColorBrush(Color.FromArgb(120,240, 17, 17));