最近在自学WPF,看到《形状、画刷和变换》这一章节,这一章节的最后一小节讲的是透明掩码,对于它我一开始不太理解,虽然照着书上的源码写了一个实例,但还是懵懵懂懂的。
刚刚在网上看了些资料,又做了一个测试的项目,算是有点明白了。
先讲下OpacityMask的作用吧,我是这样理解的:OpacityMask是给对象(这个对象可以是窗体、图片、按钮或者形状等对象)上面加一个透明的遮罩层,这和Opacity属性是使对象本身实现透明效果是不同的。
拿下面这段代码举例:
<Window x:Class="TouMingYanMa.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Background>
<ImageBrush ImageSource="images/fengjing.jpg"></ImageBrush>
</Window.Background>
<Grid Background="Wheat">
<Grid.OpacityMask>
<LinearGradientBrush StartPoint="