如何在XAML中设置背景不透明度和边框不透明度?

for*_*yez 26 c# wpf xaml

我有一个TextBox:

<TextBox x:Name="myTextBox"/>
Run Code Online (Sandbox Code Playgroud)

TextBox在后面的代码有两个布尔:

 myTextBox.Background.Opacity = 0;
 myTextBox.BorderBrush.Opacity = 0;
Run Code Online (Sandbox Code Playgroud)

现在这一切都很好,但我如何在XAML中设置这两个属性?

顺便说一下,设定:

<TextBox x:Name="myTextBox" Background="#00FFFFFF"/>
Run Code Online (Sandbox Code Playgroud)

不影响Opacity财产.我想在XAML中专门设置opacity属性.

zi3*_*guw 55

你想做这样的事情:

<TextBlock Text="foo bar">
    <TextBlock.Background>
        <SolidColorBrush Color="Azure" Opacity="0.5" />
    </TextBlock.Background>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)


Jos*_*ins 15

XAML中的不透明度定义为double,而不是HTML颜色三元组.

http://msdn.microsoft.com/en-us/library/system.windows.uielement.opacity.aspx

你会想要这样设置:

<TextBlock Opacity="0" />
Run Code Online (Sandbox Code Playgroud)

您还可以使用画笔来设置它:

<SolidColorBrush Color="#FF295564" Opacity="0.3"/>
Run Code Online (Sandbox Code Playgroud)

...然后将背景属性设置为画笔.


小智 6

我不知道这在过去何时或是否发生过更改,但至少在 WPF 4.5 中,使用 8 位十六进制颜色代码完全没问题:

<Element Background="#19ff0000"/> // background will be red with an alpha of 10%
Run Code Online (Sandbox Code Playgroud)

前两位数字指定 alpha 通道,00(0) 完全透明,FF(255) 完全不透明。