zoukankan      html  css  js  c++  java
  • Brush

    默认情况下,如果绘制ImageBrush区域的纵横比与图像不同,则拉伸其图像以完全填充要绘制的区域,从而扭曲图像。 可以通过Stretch将属性的Fill默认值更改为NoneUniform更改此行为。

     <Canvas
          Height="200" Width="300">
          <Canvas.Background>
            <ImageBrush ImageSource="sampleImages\Waterlilies.jpg" />
          </Canvas.Background>
        </Canvas>

     

    DrawingBrush使您能够使用形状、文本、图像和视频绘制区域。 下面是不同类型图形对象的列表。

    <Button Content="A Button">
      <Button.Background>
        <DrawingBrush>
          <DrawingBrush.Drawing>
            <GeometryDrawing Brush="LightBlue">
              <GeometryDrawing.Geometry>
                <GeometryGroup>
                  <EllipseGeometry RadiusX="12.5" RadiusY="25" Center="25,50" />
                  <EllipseGeometry RadiusX="12.5" RadiusY="25" Center="50,50" />
                  <EllipseGeometry RadiusX="12.5" RadiusY="25" Center="75,50" />
                </GeometryGroup>
              </GeometryDrawing.Geometry>
              <GeometryDrawing.Pen>
                <Pen Thickness="1" Brush="Gray" />
              </GeometryDrawing.Pen>
            </GeometryDrawing>
          </DrawingBrush.Drawing>
        </DrawingBrush>
      </Button.Background>
    </Button>

    TileBrush可对图像、绘图或视觉对象绘制区域的方式进行大量控制。 例如,不使用单个拉伸图像绘制区域,而是使用创建图案的一系列平铺图像绘制区域。

    Viewport确定基本磁贴的大小和位置,ViewportUnits该属性确定是使用绝对坐标还是相对坐标

    在下面的示例中,使用一幅图像来创建一个宽度和高度均为 50% 的图块。 基本图块位于输出区域的 (0,0) 处。

    <Rectangle
     Width="50" Height="100">
      <Rectangle.Fill>
        <!-- Paints an area with 4 tiles. -->
        <ImageBrush ImageSource="sampleImages\cherries_larger.jpg"
          Viewport="0,0,0.5,0.5"
          ViewportUnits="RelativeToBoundingBox" 
          TileMode="Tile" />
      </Rectangle.Fill>
    </Rectangle>

    下一个示例将 ImageBrush的切片设置为 25 x 25 个独立于设备的像素。

    <Rectangle
     Width="50" Height="100">
      <Rectangle.Fill>
        <!-- Paints an area with 25 x 25 tiles. -->
        <ImageBrush ImageSource="sampleImages\cherries_larger.jpg"
          Viewport="0,0,25,25"
          ViewportUnits="Absolute" 
          TileMode="Tile" />
      </Rectangle.Fill>
    </Rectangle>
  • 相关阅读:
    阿里双11,如何实现每秒几十万的高并发写入
    记住:永远不要在 MySQL 中使用 UTF-8
    史上最烂的项目:苦撑 12 年,600 多万行代码
    除了不要 SELECT * ,使用数据库还应知道的11个技巧!
    厉害了,为了干掉 HTTP ,Spring团队又开源 nohttp 项目!
    请停止学习框架
    基于 MySQL 主从模式搭建上万并发的系统架构
    JS获取节点
    JS函数
    JS
  • 原文地址:https://www.cnblogs.com/yetsen/p/13573633.html
Copyright © 2011-2022 走看看