2021年5月27日星期四

WPF 2D图形 Shape入门(一)--Shape

本文是篇WPF Shape的入门文章

Shape

首先看看shape的继承链关系:

一个Shape具有哪些重要属性:

属性说明
DefiningGeometry默认的几何形状
RenderedGeometry最终渲染后呈现的几何形状
Stroke绘制的形状轮廓加上画刷(颜色)
StrokeThickness绘制边框画刷的粗细
Fill给绘制的形状内部填充画刷

Rectangle

我们先来剖析一个简单的预设的Shape对象Rectangle,实际上一个Rectangle能够正式渲染显示到界面当中,必须含有三个要素:

  • Geometry(几何):决定着绘制的形状
  • Stroke(边框画刷)或者Fill(填充画刷):给绘制的形状轮廓加上画刷(颜色)/给绘制的形状内部填充画刷(颜色)
  • Height/Width:决定着几何图形的大小

因此代码如下:

MainWindow.xaml:

 <Grid>  <Grid.ColumnDefinitions>   <ColumnDefinition></ColumnDefinition>   <ColumnDefinition></ColumnDefinition>  </Grid.ColumnDefinitions>  <Rectangle x:Name="Rectangle" Height="150" Width="150" Stroke="Black" /> </Grid>

MainWindow.xaml.cs:

Debug.WriteLine(Rectangle.RenderedGeometry.ToString());

输出:

System.Windows.Media.RectangleGeometry

因此实际上决定一个真正的Rectangle形状的是RectangleGeometry,关于Geometry相关的知识可能会在以后Shape系列文章讲到

Path

还有一种方式同样的能够获得矩形形状,那就是通过Path:

MainWindow.xaml:

 <Path x:Name="Path" Grid.Column="1" Stroke="Black" />

MainWindow.xaml.cs:

 Path.Data = new RectangleGeometry(new Rect(100, 128, 150, 150)); Debug.WriteLine(Path.RenderedGeometry.ToString());

输出:

System.Windows.Media.RectangleGeometry

界面效果:

因此,Rectangle实际上底层是预设了RectangleGeometry,而通过Path我们可以自定义所需的Geometry

源码

https://github.com/ZhengDaoWang/BlogCodeSample/tree/main/ShapeSample









原文转载:http://www.shaoqun.com/a/764895.html

跨境电商:https://www.ikjzd.com/

笨鸟转运:https://www.ikjzd.com/w/1550

贝贝网:https://www.ikjzd.com/w/1321


本文是篇WPFShape的入门文章Shape首先看看shape的继承链关系:一个Shape具有哪些重要属性:属性说明DefiningGeometry默认的几何形状RenderedGeometry最终渲染后呈现的几何形状Stroke绘制的形状轮廓加上画刷(颜色)StrokeThickness绘制边框画刷的粗细Fill给绘制的形状内部填充画刷Rectangle我们先来剖析一个简单的预设的Shape对象
e淘网:https://www.ikjzd.com/w/1698
csa:https://www.ikjzd.com/w/904
首信易:https://www.ikjzd.com/w/1841
亚马逊广告排名查询工具:https://www.ikjzd.com/tl/8491
操纵评论申诉信实例详解_那些新手容易忽略的申诉要点 :https://www.ikjzd.com/articles/122361
亚马逊英国因出售这款产品,遭外界强烈抨击:https://www.ikjzd.com/articles/129427

没有评论:

发表评论