【问题标题】:SolidColorBrush with Opacity on a Black background在黑色背景上具有不透明度的 SolidColorBrush
【发布时间】:2011-10-12 05:36:05
【问题描述】:

我正在执行以下操作来填充具有一定不透明度的矩形。

 SolidColorBrush fillColor = new SolidColorBrush(myColor);
 fillColor.Opacity = 0.3;
 rectangle1.Fill = fillColor;

矩形是黑色背景上的用户控件的一部分。问题是我在白色背景上得到了不透明度。如何更改它,就像对黑色背景上的颜色应用不透明度一样。

以下是我得到的绿色填充颜色。 (即覆盖在白色背景上)我需要的是这样的东西。 (即覆盖在黑色背景上)

【问题讨论】:

    标签: c# .net silverlight


    【解决方案1】:

    我知道问题已有多年历史,但也许这会对某人有所帮助。这就是我在 XAML/VB Visual Studio 2017 中所做的。效果很好:

    Private Sub Hyper1_PointerEntered(sender As Object, e As RoutedEventArgs) Handles Hyper1.PointerEntered
        Hyper1.Background = New SolidColorBrush(Colors.Gold)
        Hyper1.Background.Opacity = 0.6
    End Sub
    

    【讨论】:

      【解决方案2】:

      看看这是否有效:

      myColor.A = 75; // 255 * 0.3 is approx. 75
      SolidColorBrush fillColor = new SolidColorBrush(myColor);
      rectangle.Fill = fillColor;
      

      【讨论】:

      • 这不是改变不透明度,只是改变颜色。
      猜你喜欢
      • 1970-01-01
      • 2018-04-24
      • 2012-06-26
      • 1970-01-01
      • 2016-02-22
      • 1970-01-01
      • 2016-12-29
      • 2015-07-04
      相关资源
      最近更新 更多