UIElement.OpacityMask 属性

2013/12/13

获取或设置用于改变此对象区域的不透明度的画笔。

Namespace:  System.Windows
程序集:  System.Windows(位于 System.Windows.dll 中)
XMLNS for XAML: 未映射到 xmlns。

public Brush OpacityMask { get; set; }
<uiElement>
  <uiElement.OpacityMask>
    singleBrush
  </uiElement.OpacityMask>
</uiElement>

XAML 值

singleBrush

Brush 派生的对象只有一个对象元素。它通常为以下类之一:LinearGradientBrushRadialGradientBrushImageBrush

属性值

类型: System.Windows.Media.Brush
描述应用于此对象的不透明度的画笔。默认值为 null

依赖项属性标识符字段: OpacityMaskProperty

此属性仅使用提供的 Brush 的 Alpha 通道值。画笔内容的其他通道(红色、绿色或蓝色)被忽略。

最常见的用于此目的的 BrushImageBrush,它可用在各种蒙板技术中(如虚光照),使用的是不规则形状。从技术上来说,可以使用任何已定义的 Brush(如 LinearGradientBrush)。不建议将 VideoBrush 用于此目的,因为视频一般不携带 Alpha 信息(而且,Windows Phone 使用的编解码器不能处理视频中的 Alpha 信息)。允许使用某个构造语法创建的 SolidColorBrush(该语法指定 ARGB 形式的 Alpha),但是结果将不能与使用与 SolidColorBrush 的 Alpha 相同的因子的 Opacity 进行区分。

这些画笔的 XAML 语法一般都需要 Brush 派生的对象元素,以便填充 XAML 中的属性元素语法,因此这是上面所示的 XAML 语法。涉及 SolidColorBrush 的特性语法及其字符串转换行为在技术上可以实现,但是,由于前文备注中所述的原因,SolidColorBrush 通常不用于 OpacityMask

下面的 XAML 示例在图像上放置一个居中的椭圆屏蔽,这样,图像将使用径向梯度在椭圆边缘淡出到为零的不透明度。

<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1"  >
   <Image Source="yourImageHere.jpg">
      <Image.OpacityMask>
         <RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5">
            <!-- These Gradient Stop colors are only changing the alpha values so the image fades out toward the edges. -->
           <GradientStop Color="#ffffffff" Offset="0.5" />
           <GradientStop Color="#00ffffff" Offset="0.8" />
        </RadialGradientBrush>
      </Image.OpacityMask>
   </Image>
</Grid>

Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示:
© 2014 Microsoft