WPF画刷

1. SolidColorBrush实体画刷

<Grid>
    <Button x:Name="Button1" Content="Button" Grid.ColumnSpan="2" Height="25" Width="150">
        <Button.Background>
            <SolidColorBrush Color="LightBlue"></SolidColorBrush>
        </Button.Background>
    </Button>
</Grid>
private void Window_Loaded(object sender, RoutedEventArgs e)
{
    this.Button1.Foreground=new SolidColorBrush(Colors.Red);
}

2. LinearGradientBrush线性渐变画刷

<StackPanel>
    <Rectangle Width="250" Height="250" Margin="15">
        <Rectangle.Fill>
            <LinearGradientBrush EndPoint="0 1">
                <GradientStop Color="Blue" Offset="0"/>
                <GradientStop Color="Red" Offset="0.5"/>
                <GradientStop Color="White" Offset="1"/>
            </LinearGradientBrush>
        </Rectangle.Fill>
    </Rectangle>
    <TextBlock Margin="15" Text="This text uses a gradient.">
        <TextBlock.Foreground>
            <LinearGradientBrush EndPoint="1 1">
                <GradientStop Color="Blue" Offset="0"/>
                <GradientStop Color="Red" Offset="0.5"/>
                <GradientStop Color="White" Offset="1"/>
            </LinearGradientBrush>
            </TextBlock.Foreground>
    </TextBlock>
</StackPanel>

3. RadialGradientBrush弧形渐变画刷

<StackPanel>
    <Ellipse Height="350" Width="350" Margin="15">
        <Ellipse.Fill>
            <RadialGradientBrush GradientOrigin="0.5 0.4" RadiusX="0.35" RadiusY="0.4">
                    <GradientStop Color="Red"></GradientStop>
                    <GradientStop Color="Yellow" Offset="0.66"></GradientStop>
                    <GradientStop Color="Green" Offset="1"></GradientStop>
            </RadialGradientBrush>
        </Ellipse.Fill>
    </Ellipse>
</StackPanel>

4. ImageBrush图形画刷

<Grid>
    <Grid.Background>
        <ImageBrush ImageSource="Images/Chrysanthemum.jpg" Stretch="Fill"
                    Viewbox="0.2 0.3 0.2 0.6" TileMode="FlipXY"
                    ViewportUnits="RelativeToBoundingBox" Viewport="0,0 0.25,0.5"></ImageBrush>
    </Grid.Background>
</Grid>

5. VisualBrush虚拟画刷

<Grid>
    <StackPanel>
        <Button Margin="15" x:Name="Button1" Content="Is this a real button?" Click="Button1_Click"></Button>
        <Rectangle Height="125" Margin="15">
            <Rectangle.Fill>
                <VisualBrush Stretch="None" Visual="{Binding ElementName=Button1}"></VisualBrush>
            </Rectangle.Fill>
        </Rectangle>
    </StackPanel>
</Grid>
private void Button1_Click(object sender, RoutedEventArgs e)
{
    Button1.Content = "Content is changed!";
}

6. BitmapCacheBrush位图缓存画刷

<Grid>
    <StackPanel>
        <Button Margin="15" x:Name="Button1" Content="Is this a real button?" Click="Button1_Click"></Button>
        <Rectangle Height="125" Margin="15">
            <Rectangle.Fill>
                    <BitmapCacheBrush Target="{Binding ElementName=Button1}">
                    </BitmapCacheBrush>
                </Rectangle.Fill>
        </Rectangle>
    </StackPanel>
</Grid>