绘图: Stroke, Brush
Stroke - 笔划
- Brush - 画笔
示例
1、演示“Stroke”相关知识点
Drawing/Stroke.xaml

- <Page
- x:Class="Windows10.Drawing.Stroke"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:local="using:Windows10.Drawing"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- mc:Ignorable="d">
- <Grid Background="Transparent">
- <StackPanel Margin="10 0 10 10">
- <!--
- Stroke - 笔划(注:Stroke 属性是 Brush 类型)
- -->
- <!--
- StrokeDashArray - 虚线实体和虚线间隙的值的集合
- 以本例为例:第1条实线长度2,第1条虚线长度4,第2条实线长度6,第2条虚线长度2,第3条实线长度4,第3条虚线长度6
- 长度为 StrokeDashArray 乘以 StrokeThickness/2
- -->
- <Line X1="0" Y1="0" X2="1000" Y2="0" Stroke="Orange" StrokeThickness="20" StrokeDashArray="2 4 6" />
- <!--
- StrokeDashCap - 虚线两端(线帽)的类型(System.Windows.Media.PenLineCap 枚举)
- PenLineCap.Flat - 无。默认值
- PenLineCap.Round - 直径等于 StrokeThickness
- PenLineCap.Square - 高度等于 StrokeThickness 并且 宽度等于 StrokeThickness/2
- PenLineCap.Triangle - 底边长等于 StrokeThickness 的等腰直角三角形
- -->
- <Line X1="0" Y1="0" X2="1000" Y2="0" Margin="0 30 0 0" Stroke="Orange" StrokeThickness="20" StrokeDashArray="2" StrokeDashCap="Flat" />
- <Line X1="0" Y1="0" X2="1000" Y2="0" Margin="0 30 0 0" Stroke="Orange" StrokeThickness="20" StrokeDashArray="2" StrokeDashCap="Round" />
- <Line X1="0" Y1="0" X2="1000" Y2="0" Margin="0 30 0 0" Stroke="Orange" StrokeThickness="20" StrokeDashArray="2" StrokeDashCap="Square" />
- <Line X1="0" Y1="0" X2="1000" Y2="0" Margin="0 30 0 0" Stroke="Orange" StrokeThickness="20" StrokeDashArray="2" StrokeDashCap="Triangle" />
- <!--
- StrokeStartLineCap - 虚线起始端(线帽)的类型(System.Windows.Media.PenLineCap 枚举)
- StrokeEndLineCap - 虚线终结端(线帽)的类型(System.Windows.Media.PenLineCap 枚举)
- -->
- <Line X1="0" Y1="0" X2="1000" Y2="0" Margin="0 30 0 0" Stroke="Orange" StrokeThickness="20" StrokeDashArray="2" StrokeStartLineCap="Triangle" StrokeEndLineCap="Round" />
- <!--
- StrokeDashOffset - 虚线的起始点的偏移位置
- 以下举例:画一条以虚线间隙为起始的虚线
- -->
- <Line X1="0" Y1="0" X2="1000" Y2="0" Margin="0 30 0 0" Stroke="Orange" StrokeThickness="20" StrokeDashArray="2" StrokeDashOffset="10" />
- <!--
- StrokeLineJoin - 图形连接点处的连接类型(System.Windows.Media.PenLineJoin 枚举)
- StrokeLineJoin.Bevel - 线形连接
- StrokeLineJoin.Miter - 角形连接。默认值
- StrokeLineJoin.Round - 弧形连接
- -->
- <StackPanel Margin="0 30 0 0" Orientation="Horizontal">
- <Polyline Points="10,100 50,10 100,100" Stroke="Orange" StrokeThickness="20" HorizontalAlignment="Center" StrokeLineJoin="Bevel" />
- <Polyline Points="10,100 50,10 100,100" Stroke="Orange" StrokeThickness="20" HorizontalAlignment="Center" StrokeLineJoin="Miter" />
- <Polyline Points="10,100 50,10 100,100" Stroke="Orange" StrokeThickness="20" HorizontalAlignment="Center" StrokeLineJoin="Round" />
- </StackPanel>
- <!--
- StrokeMiterLimit - 斜接长度(蓝色线部分)与 StrokeThickness/2 的比值。默认值 10,最小值 1
- -->
- <Grid Margin="0 30 0 0" HorizontalAlignment="Left">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="120" />
- <ColumnDefinition Width="120" />
- <ColumnDefinition Width="120" />
- </Grid.ColumnDefinitions>
- <Polyline Grid.Column="0" Points="0,100 50,10 100,100" Stroke="Orange" StrokeThickness="20" StrokeMiterLimit="1" />
- <Line Grid.Column="0" X1="50" Y1="10" X2="50" Y2="0" Stroke="Blue" />
- <Polyline Grid.Column="0" Points="0,100 50,10 100,100" Stroke="Red" />
- <Polyline Grid.Column="1" Points="0,100 50,10 100,100" Stroke="Orange" StrokeThickness="20" StrokeMiterLimit="2.0" />
- <Line Grid.Column="1" X1="50" Y1="10" X2="50" Y2="-10" Stroke="Blue" />
- <Polyline Grid.Column="1" Points="0,100 50,10 100,100" Stroke="Red" />
- </Grid>
- </StackPanel>
- </Grid>
- </Page>

2、演示“Brush”相关知识点
Drawing/Brush.xaml

- <Page
- x:Class="Windows10.Drawing.Brush"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:local="using:Windows10.Drawing"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- mc:Ignorable="d">
- <Grid Background="Transparent">
- <StackPanel Margin="10 0 10 10" HorizontalAlignment="Left">
- <!--
- Windows.UI.Xaml.Media.Brush - 画笔
- -->
- <!--
- SolidColorBrush - 单色画笔
- Color - 颜色
- 格式如下:
- 预定义的Color的名称。如:Red, Green, Blue
- #RGB。如:#F00
- #ARGB(A为Alpha值)。如:#FF00, #F0F0, #F00F
- #RGB。如:#FF0000, #00FF00, #0000FF
- #ARGB(A为Alpha值)。如:#FFFF0000, #FF00FF00, #FF0000FF
- -->
- <Ellipse Margin="10" Width="200" Height="100" Stroke="Yellow" StrokeThickness="3" HorizontalAlignment="Left">
- <Ellipse.Fill>
- <SolidColorBrush Color="#88FF0000" />
- </Ellipse.Fill>
- </Ellipse>
- <!--
- ImageBrush - 图像画笔
- ImageSource - 图片地址
- Stretch - 拉伸方式
- AlignmentX - 水平方向的对齐方式。Center(默认值), Left, Right
- AlignmentY - 垂直方向的对齐方式。Center(默认值), Top, Bottom
- -->
- <Rectangle Width="100" Height="100" Stroke="Red" StrokeThickness="1" HorizontalAlignment="Left" Margin="0 10 0 0">
- <Rectangle.Fill>
- <ImageBrush ImageSource="/Assets/Logo.png" AlignmentX="Right" AlignmentY="Bottom" Stretch="Fill" />
- </Rectangle.Fill>
- </Rectangle>
- <WebView x:Name="webView" Source="http://webabcd.cnblogs.com" Width="300" Height="100" LoadCompleted="webView_LoadCompleted" HorizontalAlignment="Left" Margin="0 10 0 0" />
- <!--
- WebView - 浏览器画笔
- SourceName - WebView 指向的 http 地址
- 注:如果需要显示 WebView 的最新结果,需要调用 WebViewBrush.Redraw() 方法
- -->
- <Rectangle Width="300" Height="100" Stroke="Red" HorizontalAlignment="Left" Margin="0 10 0 0">
- <Rectangle.Fill>
- <WebViewBrush x:Name="webViewBrush" SourceName="webView"/>
- </Rectangle.Fill>
- </Rectangle>
- <!--
- 演示 LinearGradientBrush 如何使用(注:不支持 RadialGradientBrush)
- -->
- <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="0 10 0 0">
- <Grid>
- <Rectangle Width="200" Height="100" HorizontalAlignment="Left">
- <Rectangle.Fill>
- <!--
- LinearGradientBrush - 线性渐变画笔
- StartPoint - 线性渐变的起点。默认渐变方向为对角线方向,默认值为左上角0,0
- EndPoint - 线性渐变的终点。默认渐变方向为对角线方向,默认值为右下角1,1
- GradientStop - 渐变中,过渡点的设置
- Color - 过渡点的颜色
- Offset - 过渡点的位置。相对于渐变线的比值。最小值0.0(默认值),最大值1.0
- ColorInterpolationMode - 插入渐变颜色的方式(System.Windows.Media.ColorInterpolationMode 枚举)
- ScRgbLinearInterpolation - scRGB
- SRgbLinearInterpolation - sRGB。默认值
- -->
- <LinearGradientBrush StartPoint="0,0" EndPoint="1,1" ColorInterpolationMode="SRgbLinearInterpolation">
- <GradientStop Color="Red" Offset="0.0" />
- <GradientStop Color="Green" Offset="0.25" />
- <GradientStop Color="Blue" Offset="0.75" />
- <GradientStop Color="Yellow" Offset="1.0" />
- </LinearGradientBrush>
- </Rectangle.Fill>
- </Rectangle>
- <Line X1="0" Y1="0" X2="200" Y2="100" Stroke="Black" HorizontalAlignment="Left" />
- </Grid>
- <Grid Margin="10 0 0 0">
- <Rectangle Width="200" Height="100" HorizontalAlignment="Left">
- <Rectangle.Fill>
- <!--
- MappingMode - 指定线性渐变的起点(StartPoint)和终点(EndPoint)相对于输出区域是相对的还是绝对的(System.Windows.Media.BrushMappingMode 枚举)
- MappingMode.RelativeToBoundingBox - 相对坐标。默认值
- MappingMode.Absolute - 绝对坐标
- -->
- <LinearGradientBrush StartPoint="0,0" EndPoint="200,100" MappingMode="Absolute">
- <GradientStop Color="Red" Offset="0.0" />
- <GradientStop Color="Green" Offset="0.25" />
- <GradientStop Color="Blue" Offset="0.75" />
- <GradientStop Color="Yellow" Offset="1.0" />
- </LinearGradientBrush>
- </Rectangle.Fill>
- </Rectangle>
- <Line X1="0" Y1="0" X2="200" Y2="100" Stroke="Black" HorizontalAlignment="Left" />
- </Grid>
- <Grid Margin="10 0 0 0">
- <Rectangle Width="200" Height="100" HorizontalAlignment="Left">
- <Rectangle.Fill>
- <!--
- SpreadMethod - 线性渐变线(黑色线)之外, 输出区域之内的渐变方式(System.Windows.Media.GradientSpreadMethod枚举)
- GradientSpreadMethod.Pad - 用线性渐变线末端的颜色值填充剩余空间。默认值
- -->
- <LinearGradientBrush StartPoint="0.4,0.5" EndPoint="0.6,0.5" SpreadMethod="Pad">
- <GradientStop Color="Red" Offset="0.0" />
- <GradientStop Color="Green" Offset="1.0" />
- </LinearGradientBrush>
- </Rectangle.Fill>
- </Rectangle>
- <Line X1="80" Y1="50" X2="120" Y2="50" Stroke="Black" HorizontalAlignment="Left" />
- </Grid>
- <Grid Margin="10 0 0 0">
- <Rectangle Width="200" Height="100" HorizontalAlignment="Left">
- <Rectangle.Fill>
- <!--
- SpreadMethod - 线性渐变线(黑色线)之外, 输出区域之内的渐变方式(System.Windows.Media.GradientSpreadMethod枚举)
- GradientSpreadMethod.Reflect - 相邻填充区域,以 相反方向 重复渐变,直至填充满整个剩余空间
- -->
- <LinearGradientBrush StartPoint="0.4,0.5" EndPoint="0.6,0.5" SpreadMethod="Reflect">
- <GradientStop Color="Red" Offset="0.0" />
- <GradientStop Color="Green" Offset="1.0" />
- </LinearGradientBrush>
- </Rectangle.Fill>
- </Rectangle>
- <Line X1="80" Y1="50" X2="120" Y2="50" Stroke="Black" HorizontalAlignment="Left" />
- </Grid>
- <Grid Margin="10 0 0 0">
- <Rectangle Width="200" Height="100" HorizontalAlignment="Left">
- <Rectangle.Fill>
- <!--
- SpreadMethod - 线性渐变线(黑色线)之外, 输出区域之内的渐变方式(System.Windows.Media.GradientSpreadMethod枚举)
- GradientSpreadMethod.Repeat - 相邻填充区域,以 相同方向 重复渐变,直至填充满整个剩余空间
- -->
- <LinearGradientBrush StartPoint="0.4,0.5" EndPoint="0.6,0.5" SpreadMethod="Repeat">
- <GradientStop Color="Red" Offset="0.0" />
- <GradientStop Color="Green" Offset="1.0" />
- </LinearGradientBrush>
- </Rectangle.Fill>
- </Rectangle>
- <Line X1="80" Y1="50" X2="120" Y2="50" Stroke="Black" HorizontalAlignment="Left" />
- </Grid>
- </StackPanel>
- </StackPanel>
- </Grid>
- </Page>

Drawing/Brush.xaml.cs

- using Windows.UI.Xaml.Controls;
- using Windows.UI.Xaml.Navigation;
- namespace Windows10.Drawing
- {
- public sealed partial class Brush : Page
- {
- public Brush()
- {
- this.InitializeComponent();
- }
- private void webView_LoadCompleted(object sender, NavigationEventArgs e)
- {
- // WebView 加载完毕后重绘 WebViewBrush
- webViewBrush.Redraw();
- }
- }
- }

绘图: Stroke, Brush的更多相关文章
- 背水一战 Windows 10 (13) - 绘图: Stroke, Brush
[源码下载] 背水一战 Windows 10 (13) - 绘图: Stroke, Brush 作者:webabcd 介绍背水一战 Windows 10 之 绘图 Stroke - 笔划 Brush ...
- 重新想象 Windows 8 Store Apps (18) - 绘图: Shape, Path, Stroke, Brush
原文:重新想象 Windows 8 Store Apps (18) - 绘图: Shape, Path, Stroke, Brush [源码下载] 重新想象 Windows 8 Store Apps ...
- 重新想象 Windows 8 Store Apps 系列文章索引
[源码下载][重新想象 Windows 8.1 Store Apps 系列文章] 重新想象 Windows 8 Store Apps 系列文章索引 作者:webabcd 1.重新想象 Windows ...
- 《Programming WPF》翻译 第7章 2.图形
原文:<Programming WPF>翻译 第7章 2.图形 图形时绘图的基础,代表用户界面树的元素.WPF支持多种不同的形状,并为它们每一个都提供了元素类型. 7.2.1基本图形类 在 ...
- 我(webabcd)的文章索引
[最后更新:2014.08.28] 重新想象 Windows Store Apps 系列文章 重新想象 Windows 8 Store Apps 系列文章 重新想象 Windows 8 Store A ...
- Windows 8 Store Apps
重新想象 Windows 8 Store Apps 系列文章索引 Posted on 2013-11-18 08:33 webabcd 阅读(672) 评论(3) 编辑 收藏 [源码下载] 重新想象 ...
- Kinect 开发 —— 骨骼追踪
骨骼追踪技术通过处理景深数据来建立人体各个关节的坐标,骨骼追踪能够确定人体的各个部分,如那部分是手,头部,以及身体.骨骼追踪产生X,Y,Z数据来确定这些骨骼点.骨骼追踪系统采用的景深图像处理技术使用更 ...
- ]Kinect for Windows SDK开发入门(六):骨骼追踪基础 上
原文来自:http://www.cnblogs.com/yangecnu/archive/2012/04/06/KinectSDK_Skeleton_Tracking_Part1.html Kinec ...
- C#屏幕截图
今天通过C#来实现一个简单的屏幕截图功能.实现思路,获取鼠标按下去的位置和鼠标左键释放的位置,计算这个区域的宽度和高度.然后通过 Graphics.CopyFromScreen 方法便可以获取到屏幕截 ...
随机推荐
- Google Guava官方教程(中文版)
Google Guava官方教程(中文版) 原文链接 译文链接 译者: 沈义扬,罗立树,何一昕,武祖 校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库, ...
- u-boot移植初步尝试-tiny4412
获取u-boot源代码 在u-boot官方网站下载uboot源码.ftp://ftp.denx.de/pub/u-boot/ 因为是第一次移植uboot,所以这里选的版本是 u-boot-2013.0 ...
- UBUNTU添加新的分辨率
首先,直接运行xrandr查看下分辨率的情况: $ xrandr Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 4096 x 40 ...
- 使用Access-Control-Allow-Origin解决跨域
什么是跨域 当两个域具有相同的协议(如http), 相同的端口(如80),相同的host(如www.google.com),那么我们就可以认为它们是相同的域(协议,域名,端口都必须相同). 跨域就指着 ...
- class 函数
cocos2d-x 3.3 lua 版本的class函数用法: local FightScene = class("FightScene", function() return c ...
- phantomjs模拟登录
最近在做一些公司其他部门系统的后台模拟操作,但由于那边的系统最开始是外包给其他公司开发的,现在那边的开发也不知道有些post的参数是如何生成的.于是想考察下是不是可以把phantomjs这个工具给加进 ...
- Exploit利用学习1:MS09-001
目标 IP: Kali系统IP: 1.使用Metasploit框架,在kali终端输入msfconsole打开Metasploit:如下图 2.搜索相关模块:search ms09-001 找到一个可 ...
- Java集合系列:-----------05LinkedList的底层实现
前面,我们已经学习了ArrayList,并了解了fail-fast机制.这一章我们接着学习List的实现类--LinkedList.和学习ArrayList一样,接下来呢,我们先对LinkedList ...
- Dynamics CRM 2016 的新特性
新版本CRM (2016 with update 0.1) 发布已有几个月了,总结一下新特性,从几个方面来看: 1. 针对整合功能的新特性 (1) 增加了CRM App for Outlook. 这个 ...
- 推薦使用 Microsoft Anti-Cross Site Scripting Library v3.1
原文链接:http://blog.miniasp.com/post/2009/09/27/Recommand-Microsoft-Anti-XSS-Library-V31.aspx 雖然我之前已經寫過 ...