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>
        
  • 相关阅读:
    30+简约时尚的Macbook贴花
    20+非常棒的Photoshop卡通设计教程
    20+WordPress手机主题和插件【好收藏推荐】
    75+精美的网格网站设计欣赏
    TopFreeTheme精选免费模板【20130629】
    45个有新意的Photoshop教程和技巧
    30个高质量的旅游网站设计
    55个高质量的Magento主题,助你构建电子商务站点
    一个弹框引起的彻夜加班
    开始跟踪Redis啦,开帖
  • 原文地址:https://www.cnblogs.com/kingge/p/2027269.html
Copyright © 2011-2022 走看看