Shapes形状

  • 文件结构:

  • FillRuleExample

Polygon.FillRule:该枚举指定如何确定形状的内部填充。

<PolygonPoints="10,100 50,0 90,100 0,35 100,35"Fill="Gold"Stroke="Black"StrokeThickness="3"FillRule="EvenOdd"Canvas.Left="150"Canvas.Top="20" />

扩展:

  1. EvenOdd:此规则确定一个点是否位于填充区域内,具体方法是从该点沿任意方向画一条无限长的射线,然后计算该射线在给定形状中因交叉而形成的路径段数。 如果该数为奇数,则点在内部;如果为偶数,则点在外部。

例:

<Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF"><Path.Data><GeometryGroup FillRule="EvenOdd"><EllipseGeometry RadiusX="50" RadiusY="50" Center="75,75" /><EllipseGeometry RadiusX="70" RadiusY="70" Center="75,75" /><EllipseGeometry RadiusX="100" RadiusY="100" Center="75,75" /><EllipseGeometry RadiusX="120" RadiusY="120" Center="75,75" /></GeometryGroup></Path.Data>
</Path>


扩展:

  1. NonZero:此规则确定一个点是否位于路径的填充区域内,具体方法是从该点沿任意方向画一条无限长的射线,然后检查形状段与射线的交点。 从零开始计数,每当线段从左向右穿过该射线时加 1,而每当路径段从右向左穿过该射线时减 1。 计算交点的数目后,如果结果为零,则说明该点位于路径外部。 否则,它位于路径内部。

例:

  • LinecapsAndJoinsExample

Shape.StrokeLineJoin:指定在 Shape 的顶点处使用的联接类型。如果在没有顶点的元素(如 Line 元素)上设置此属性,则此属性不起作用。

<PolylinePoints="50,50 75,30 100,100 130,40"Stroke="Red"StrokeThickness="20"StrokeLineJoin="Bevel"Grid.Row="2" Grid.Column="1"/>

Shape.StrokeStartLineCap、StrokeEndLineCap
如果在没有 Stroke 或没有起点或终点的形状上设置此属性,则此属性不起作用。 例如,如果在 Ellipse 上设置此属性,则此属性不起作用。

<PolylinePoints="50,50 75,30 100,100 130,40"Stroke="Red"StrokeThickness="20"StrokeStartLineCap="Round"StrokeEndLineCap="Round"  Grid.Row="3" Grid.Column="4"/>
  • MiterLimitExample

Shape.StrokeMiterLimit:对斜接长度与 Shape 元素的 StrokeThickness 的一半之比的限制。
斜接通过使两条连接线条的末端倾斜来构成角部。 当两条线段形成锐角时,斜接可能会延伸到绘制路径的线条宽度之外。

<!-- The corner is cut off (beveled) because the miter limitis set to 1.-->
<PolylinePoints="0,10 50,10 20,35"Stroke="#9999CC"StrokeThickness="20"StrokeMiterLimit="2"Canvas.Top="30"Canvas.Left="250"/>
  • Plygon:多边形

此对象与 Polyline 对象类似,不同的是,此对象必须是闭合的形状。

<Canvas Height="350" Width="350"><Polygon Name="hexagon"Stroke="Blue"StrokeThickness="2.0"Points="176,30 302.44,103 302.44,249 176,322 49.5603,249 49.5603,103"><Polygon.Fill><RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5"><RadialGradientBrush.GradientStops><GradientStop Color="Red" Offset="0" /><GradientStop Color="Gold" Offset="0.75" /></RadialGradientBrush.GradientStops></RadialGradientBrush></Polygon.Fill></Polygon><Polygon Name="star" Stroke="Blue" Fill="LightCoral" StrokeThickness="2.0" Points="176.5,50 189.2,155.003 286.485,113.5 201.9,177 286.485,240.5 189.2,198.997 176.5,304 163.8,198.997 66.5148,240.5 151.1,177 66.5148,113.5 163.8,155.003" /></Canvas>
  • RectangleExample

矩形圆角为:可选的 RadiusX 和 RadiusY 属性
ps:在为 Grid 面板的某些部分提供背景时矩形特别有用。

  • StretchExamplet填充效果

描述形状如何填充为它分配的空间。

<Border Grid.Row="5" Grid.Column="2" Style="{StaticResource MyGridBorderStyle}" HorizontalAlignment="Left"><Canvas Height="200" Width="200"><Border Height="100" Width="50" Canvas.Top="50" Canvas.Left="70"   BorderBrush="Black" BorderThickness="1" ><Polygon Height="100" Width="50" Points="0,0 10,10 0,10" Fill="Blue" Stretch="UniformToFill"/></Border></Canvas>
</Border>

WPF:Graphics绘图--Shapes形状相关推荐

  1. C#WPF XAML 绘图、画笔、特效

    C#WPF XAML 绘图.画笔.特效 一.绘图 I.绘图有两种方式:形状绘图和几何绘图. 1.(1).形状(Shape)是一个2D绘图类,位于System.Windows.Shape空间内. 2.包 ...

  2. java画图Graphics绘图(GUI)图形用户界面绘画卡通人物

    java画图Graphics绘图(GUI)图形用户界面绘画卡通人物 package pack4; import java.awt.*; import javax.swing.*;public clas ...

  3. 用仿ActionScript的语法来编写html5——第五篇,Graphics绘图

    用仿ActionScript的语法来编写html5--第五篇,Graphics绘图 用仿ActionScript的语法来编写html5--第一篇,显示一张图片 http://blog.csdn.net ...

  4. iOS Core Graphics绘图

    Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎.它提供了低级别.轻量级.高保真度的2D渲染. 上下文 Core Graphics API所有的操 ...

  5. WPF 2D绘图(2)Geometry

    Shape是对Geometry的一种封装,Shape本质上还是通过绘制Geometry的形状,然后以填充笔刷来呈现效果 如Rectangle <Path Stroke="Black&q ...

  6. 使用 Core Graphics 绘制基本形状

    作者:Arthur Knopper,原文链接,原文日期:2015-08-31 译者:lfb_CD:校对:千叶知风:定稿:shanks Core Graphics是Cocoa和Cocoa Touch所共 ...

  7. centos 下 r graphics绘图如何保存_如何选购一台合适的商务笔记本电脑

    在选择商务办公笔记本时,如果工作是图形密集型的,就需要一台带独立图形的笔记本电脑.选择处理器必须在应用功率和能效之间找到适当的平衡,在选择电池时,必须在容量和重量之间进行选择. 为工作选择最好的笔记本 ...

  8. Windform C# Graphics绘图,消除锯齿

    Graphics g = CreateGraphics(); g.SmoothingMode = SmoothingMode.AntiAlias; //使绘图质量最高,即消除锯齿 g.Interpol ...

  9. Java用JFrame、JPanel、Graphics绘图案例讲解

    前言: 本文将介绍Java绘图工具的使用,通过具体示例,演示通过Java的Graphics类在JFrame中的JPanel上绘制图形的步骤和方法. 一.绘图的相关Java类介绍: JFrame类,是J ...

最新文章

  1. 深入理解三次握手四次挥手以及使用scapy实现ddos雏形
  2. Java设计模式(7)装饰模式(Decorator模式)
  3. mybatis大于小于等于
  4. 49 -算法 -LeetCode 107 107. 二叉树的层序遍历 II 栈队列vector
  5. IDEA中导入一个新项目,出现了Cannot resolve symbol 'String'
  6. yandex安装插件教程,研究了一下午终于可以用了
  7. Excel查找快捷键:Ctrl+F
  8. 89c51c语言程序,AT89C51单片机流水灯c语言程序及详解
  9. matlab 花体字母,小论文格式模板.doc
  10. 统计|方差分析拒绝原假设的LSD一般步骤及实现
  11. 程序员应该每天写代码
  12. python美化excel_简单介绍python在CMD界面读取excel所有数据
  13. 全球知名浏览器盘点,跨境电商的你知道吗?
  14. 只有真正将产业互联网看成是一种嬗变的过程,才能把握其精髓和原始奥义
  15. 经纬财富:乌海黄金白银暂缓跌势
  16. 在DW中制作网页中的表格
  17. 2022-2028全球与中国变压器测试服务市场现状及未来发展趋势
  18. 汉字转拼音 汉字首字母
  19. Android图表控件MPAndroidChart实现左右滑动以及联动
  20. 目标检测YOLO实战应用案例100讲-基于深度学习的自动驾驶目标检测算法研究

热门文章

  1. java match parent_Maven的聚合(多模块)和Parent继承
  2. tikz包 安装_Latex之安装宏包 | 学步园
  3. kpu 处理器_首轮融资即估值过亿,中科驭数用全新专用计算架构让芯片也能“私人订制”...
  4. 牛客小白月赛12 J 月月查华华的手机 (序列自动机模板题)
  5. SVG 图像入门教程
  6. 非常恶俗地分享一首歌曲(童年·葫芦娃)
  7. 在c#中将debug/release下文件打包成一个可直接运行exe文件
  8. c++中CreateEvent函数解析(1)
  9. 汇编语言不带冒号标号的用法
  10. c++中调用Com组件的方法详解