zoukankan      html  css  js  c++  java
  • (二)画刷

    SolidColorBrush:

    单色画刷主要用于设置Fill和BackGroundColor,属性Color用于设置颜色,Opacity用于设置透明度.
    View Code
    1 <Ellipse Height="100" HorizontalAlignment="Left" Margin="39,97,0,0" Name="ellipse2" Stroke="Black" VerticalAlignment="Top" Width="200">
    2 <Ellipse.Fill>
    3 <SolidColorBrush Color="Red" Opacity="0.5"></SolidColorBrush>
    4 </Ellipse.Fill>
    5 </Ellipse>
    6 <Ellipse Height="100" HorizontalAlignment="Left" Margin="39,42,0,0" Name="ellipse1" Stroke="Black" VerticalAlignment="Top" Width="200">
    7 <Ellipse.Fill>
    8 <SolidColorBrush Color="Yellow" Opacity="0.5"></SolidColorBrush>
    9 </Ellipse.Fill>
    10 </Ellipse>

    GradientBrush:

            1. LinearGradientBrush
            线性渐变画刷.StartPoint属性和EndPoint属性决定渐变的方向和范围.
            GradientStop的Offset属性设置颜色基线的位置.
       
    View Code
    1 <Grid>
    2 <Rectangle Height="100" HorizontalAlignment="Left" Margin="36,64,0,0" Name="rectangle1" Stroke="Black" VerticalAlignment="Top" Width="200">
    3 <Rectangle.Fill>
    4 <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
    5 <GradientStop Color="White" Offset="0"></GradientStop>
    6 <GradientStop Color="Black" Offset="1"></GradientStop>
    7 </LinearGradientBrush>
    8 </Rectangle.Fill>
    9 </Rectangle>
    10 <Rectangle Height="69" HorizontalAlignment="Left" Margin="51,79,0,0" Name="rectangle2" Stroke="Black" VerticalAlignment="Top" Width="174">
    11 <Rectangle.Fill>
    12 <LinearGradientBrush StartPoint="0,1" EndPoint="0,0">
    13 <GradientStop Color="White" Offset="0"></GradientStop>
    14 <GradientStop Color="Black" Offset="1"></GradientStop>
    15 </LinearGradientBrush>
    16 </Rectangle.Fill>
    17 </Rectangle>
    18 </Grid>

         2.RadialGradientBrush
         辐射式渐变画刷.Center属性用于设置辐射形状的中心坐标,RadiusX和RadiusY分别设置X轴和Y轴的大小.GradientOrigin设置渐变起始点的位置.
         此时的GradientStop的Offset值表示GradientOrigin这一点到以中心设定图形上的任意一点的偏移量(相对的).
         

    TileBrush:

         Stretch属性主要有4个值:Fill,None,Uniform,UnifromToFill四个值.
         Fill表示普通的填充(不安纵横比例拉伸),None表示保持原始大小,Uniform表示按照比例拉伸来适应,UnifromToFill与Uniform类似,不同之处在于会裁减来适应.区别如图:
         
         TileMode属性主要有5个值:None,FlipX,FlipY,FlipXY,Tile.None表示不处理,FlipX表示横向翻转,FlipY表示纵向翻转,FlipXY表示横向和纵向翻转,Tile表示不做翻转,只是在XY轴上平铺.区别如图:
         
         Viewbox主要用于剪切,ViewboxUnits主要设置是相对定位还是绝对定位.
         ViewPort表示显示的大小,ViewboxPortUnits主要设置是相对定位还是绝对定位.
         
         1.ImageBrush:
          图像画刷的重要属性是ImageSource,用于设置图片的路径.
          
    View Code
    1 <Rectangle RadiusX="20" RadiusY="30" Stroke="Black">
    2 <Rectangle.Fill>
    3 <ImageBrush Stretch="UniformToFill" TileMode="FlipX" Viewbox="0,0,1,0.5" ViewboxUnits="RelativeToBoundingBox" Viewport="0,0,1,0.2" ViewportUnits="RelativeToBoundingBox" ImageSource="/WpfBrush;component/bin/Debug/bg.jpg"></ImageBrush>
    4 </Rectangle.Fill>
    5 </Rectangle>
          
         2.DrawingBrush:
         绘制画刷的重要属性是Drawing,你可以根据需求自己绘制所需要的图形.
         
    View Code
    1 <StackPanel>
    2 <StackPanel.Background>
    3 <DrawingBrush>
    4 <DrawingBrush.Drawing>
    5 <GeometryDrawing>
    6 <GeometryDrawing.Geometry>
    7 <GeometryGroup FillRule="EvenOdd">
    8 <EllipseGeometry Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5"></EllipseGeometry>
    9 <EllipseGeometry Center="0.5,0.5" RadiusX="0.2" RadiusY="0.2"></EllipseGeometry>
    10 </GeometryGroup>
    11 </GeometryDrawing.Geometry>
    12 <GeometryDrawing.Brush>
    13 <SolidColorBrush Color="Red"></SolidColorBrush>
    14 </GeometryDrawing.Brush>
    15 </GeometryDrawing>
    16 </DrawingBrush.Drawing>
    17 </DrawingBrush>
    18 </StackPanel.Background>
    19 </StackPanel>
         
         3.VisualBrush:
        可视化画刷的重要属性是Visual,你可以插入任何你想要的标记在一个VisualBrush中.处于性能的考虑,能用其它画刷实现的功能,尽量不要使用VisualBrush.
        
    View Code
    1 <StackPanel Margin="50">
    2
    3 <!-- 反射对象. -->
    4 <Border Name="ReflectedVisual" Width="400">
    5 <Border.Background>
    6 <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
    7 <GradientStop Offset="0.0" Color="#CCCCFF" />
    8 <GradientStop Offset="1.0" Color="White" />
    9 </LinearGradientBrush>
    10 </Border.Background>
    11 <StackPanel Orientation="Horizontal" Margin="10">
    12 <TextBlock TextWrapping="Wrap" Width="200" Margin="10">
    13 Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    14 Suspendisse vel ante. Donec luctus tortor sit amet est.
    15 Nullam pulvinar odio et wisi.
    16 Pellentesque quis magna. Sed pellentesque.
    17 Nulla euismod.
    18 Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
    19 </TextBlock>
    20 <StackPanel>
    21 <Ellipse Margin="10" Height="50" Width="50" Fill="Black" />
    22 <Ellipse Margin="10" Height="50" Width="50" Fill="Black" />
    23 <Ellipse Margin="10" Height="50" Width="50" Fill="Black" />
    24 </StackPanel>
    25 </StackPanel>
    26 </Border>
    27
    28 <Rectangle Height="1" Fill="Gray" HorizontalAlignment="Stretch" />
    29
    30 <!-- The object to contain the reflection.-->
    31 <Rectangle
    32 Height="{Binding Path=ActualHeight, ElementName=ReflectedVisual}"
    33 Width="{Binding Path=ActualWidth, ElementName=ReflectedVisual}">
    34 <Rectangle.Fill>
    35
    36 <!-- 创建反射. -->
    37 <VisualBrush
    38 Opacity="0.75" Stretch="None"
    39 Visual="{Binding ElementName=ReflectedVisual}">
    40 <VisualBrush.RelativeTransform>
    41
    42 <!-- Flip the reflection. -->
    43 <TransformGroup>
    44 <ScaleTransform ScaleX="1" ScaleY="-1" />
    45 <TranslateTransform Y="1" />
    46 </TransformGroup>
    47 </VisualBrush.RelativeTransform>
    48 </VisualBrush>
    49 </Rectangle.Fill>
    50
    51 <!-- 设置遮罩. -->
    52 <Rectangle.OpacityMask>
    53 <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
    54 <GradientStop Color="#FF000000" Offset="0.0" />
    55 <GradientStop Color="#33000000" Offset="0.5" />
    56 <GradientStop Color="#00000000" Offset="0.75" />
    57 </LinearGradientBrush>
    58 </Rectangle.OpacityMask>
    59
    60 <Rectangle.BitmapEffect>
    61 <BlurBitmapEffect Radius="1.5" />
    62 </Rectangle.BitmapEffect>
    63
    64 </Rectangle>
    65 </StackPanel>
        
  • 相关阅读:
    [Codeforces 1178D]Prime Graph (思维+数学)
    [Codeforces 316E3]Summer Homework(线段树+斐波那契数列)
    [Codeforces 997C]Sky Full of Stars(排列组合+容斥原理)
    [HDU 3625]Examining the Rooms (第一类斯特林数)
    [Codeforces 364D]Ghd(随机算法+gcd)
    【快速幂】POJ3641
    【二分查找】POJ2456-Aggressive cows
    【判断解是否可行-二分】POJ1064-Cable master
    【动态规划/递推】BZOJ1806[IOI2007]- Miners
    【动态规划去除冗余】NOIP2010-乌龟棋
  • 原文地址:https://www.cnblogs.com/kingge/p/2027269.html
Copyright © 2011-2022 走看看