【问题标题】:How to set background opacity and border opacity in XAML?如何在 XAML 中设置背景不透明度和边框不透明度?
【发布时间】:2011-10-12 16:48:18
【问题描述】:

我有一个TextBox

<TextBox x:Name="myTextBox"/>

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

 myTextBox.Background.Opacity = 0;
 myTextBox.BorderBrush.Opacity = 0;

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

顺便说一句,设置:

<TextBox x:Name="myTextBox" Background="#00FFFFFF"/>

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

【问题讨论】:

    标签: c# wpf xaml


    【解决方案1】:

    你想做这样的事情:

    <TextBlock Text="foo bar">
        <TextBlock.Background>
            <SolidColorBrush Color="Azure" Opacity="0.5" />
        </TextBlock.Background>
    </TextBlock>
    

    【讨论】:

    • 今天这对我帮助很大!如果您需要为前景和背景设置不同的不透明度,这就是解决方案。
    【解决方案2】:

    XAML 中的不透明度定义为双色,而不是 HTML 三色。

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

    你会想要这样设置它:

    <TextBlock Opacity="0" />
    

    你也可以用画笔来设置:

    <SolidColorBrush Color="#FF295564" Opacity="0.3"/>
    

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

    【讨论】:

    • 这是控件的不透明度,我指的是背景或边框的不透明度
    • @foreyez。第二个选项是设置画笔的不透明度,就像您通过 myTextBox.Background.Opacity 以编程方式一样。
    • 没错,使用画笔可以设置边框不透明度或背景。
    • 投了反对票,因为 zi3guw 提供了完整的 XAML 示例,元素本身的不透明度会使整个元素(即前景和背景)透明。
    【解决方案3】:

    我不知道这在过去何时或是否发生了变化,但至少在 WPF 4.5 中使用 8-digit-hex-color-codes 是完全可以的:

    <Element Background="#19ff0000"/> // background will be red with an alpha of 10%
    

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

    【讨论】:

      【解决方案4】:

      如果您只想在 XAML 中使用透明背景,可以使用透明预设:

      <Border Background="Transparent"/>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-11
        • 2011-10-24
        • 2013-11-08
        • 1970-01-01
        • 2013-03-04
        • 1970-01-01
        • 2013-12-27
        相关资源
        最近更新 更多