Using OpacityMask property we can make a specific region of an element transparent or partially transparent . In this tips I am going to show you how you can apply faded transparent effects on some elements in WPF.
We can use OpacityMask with both SolidColorBrush or GradientColorBrush . But if you want achieve the transparent effects with faded view, you have to use OpacityMask with LinearGradientBrush or even you can use RadialGradientBrush.
Let’s start with a GradientColorBrush where I have applied a gradient effects that moves from a solid to transparent color which applies to TextBox Control.
So, above code block sets the TextBox control OpacityMask with a LinerGradientBrush where gradient start from Black to Transparent.
Similarly you can apply with others elements as well, let’s say for a Button control as shown in below
On run, we will get the below output.
Well, now you can try with RadialGradientBrush for more fun
Below the complete XAML Code Block
<Window x:Class="WpfApplication3.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" Background="AliceBlue">
<Grid>
<Image Name="image1" Stretch="Fill" Margin="12" Source="/WpfApplication3;component/Images/Backgrounds_25962.jpg" />
<Button
Content="Click Me !"
Height="42"
HorizontalAlignment="Left"
Margin="152,213,0,0"
Name="TransBurron"
VerticalAlignment="Top"
Width="234" >
<Button.OpacityMask>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Offset="0.3" Color="Black"></GradientStop>
<GradientStop Offset="1" Color="Transparent"></GradientStop>
</LinearGradientBrush>
</Button.OpacityMask>
</Button>
<TextBox Height="30" Margin="83,74,59,207">
<TextBox.OpacityMask>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Offset="0" Color="Black"></GradientStop>
<GradientStop Offset="1" Color="Transparent"></GradientStop>
</LinearGradientBrush>
</TextBox.OpacityMask>
</TextBox>
</Grid>
</Window>
Hope this will help.
Cheers !
Aj.