Win10系列:C#应用控件进阶9
RectangleGeometry
在使用RectangleGeometry控件绘制矩形时,矩形的位置和尺寸由Rect属性定义,该属性指定矩形的相对位置、高度和宽度。Rect有四个参数,前两个参数表示矩形左上角的位置,后两个参数分别表示矩形的宽和高。下面将通过示例演示如何使用RectangleGeometry控件绘制矩形。
在一个打开的Windows应用商店项目中新建一个空白页,并命名为RectangleGeometryPage,双击打开此页面的RectangleGeometryPage.xaml文件,在Grid元素中添加如下代码。
<Path Fill="red" Stroke="blue" StrokeThickness="3">
<Path.Data>
<RectangleGeometry Rect="300,300,100,100" />
</Path.Data>
</Path>
上面的代码首先定义一个Path控件并设置Fill属性为红色(red)、Stroke属性为蓝色(blue)和StrokeThickness属性为3像素。接着在Path.Data的内部使用RectangleGeometry的Rect属性定义了一个起始坐标为 (300,300)、高度和宽度均为100的矩形。绘制矩形的运行效果如图8-11所示。
接下来在后台使用RectangleGeometry类型的对象绘制一个与前台一样的矩形,代码如下所示:
public RectangleGeometryPage()
{
this.InitializeComponent();
//实例化Path对象
Windows.UI.Xaml.Shapes.Path mypath = new Windows.UI.Xaml.Shapes.Path();
mypath.StrokeThickness = 3;
mypath.Stroke = new SolidColorBrush(Colors.Blue);
mypath.Fill = new SolidColorBrush(Colors.Red);
//实例化rectang对象
RectangleGeometry rectang = new RectangleGeometry();
//设置矩形的位置与大小
rectang.Rect = new Rect(300, 300, 100, 100);
mypath.Data = rectang;
//将mypath添加到MyShow控件中
MyShow.Children.Add(mypath);
}
在上面的代码中,首先实例化Path类型的对象mypath,并设定StrokeThickness 为3像素、Stroke属性为蓝色(Blue)和Fill为红色(Red)。然后定义RectangleGeometry类型的对象rectang,接着用Rect类型的对象给rectang的Rect属性赋值。将rectang对象赋值给mypath对象的Data属性,最后把mypath对象添加到名为MyShow的控件中。
运行此页面,利用RectangleGeometry绘制矩形的效果如图8-10所示。

图8-10 RectangleGeometry 画的矩形
RectangleGeometry对象除了能绘制几何图形,还可以定义图像的剪辑区域,在Geometry的子类中目前只有RectangleGeometry支持定义剪辑区域。下面通过一个简单的示例来展示此功能,代码如下所示:
<!--原图-->
<Image Source="Images/Image.png" Width="200"></Image>
<!--截图代码-->
<Image Source="Images/Image.png" Width="200" >
<Image.Clip>
<RectangleGeometry Rect="20,20,100,100">
</RectangleGeometry>
</Image.Clip>
</Image>
上面的代码添加了两个Image控件,一个用于显示原图,另一个用于显示剪辑后的图片。接着设置Image控件的Source属性为图片在项目中的路径,这需要提前将图片导入到项目中以便获得图片的路径。最后在第二个Image控件的Clip属性中添加一个RectangleGeometry元素,并设置它的Rect属性,这样即可实现图片的剪辑。
运行上面的代码,截图效果对比如图8-11所示。

图8-11 截图效果对比图
Win10系列:C#应用控件进阶9的更多相关文章
- Win10系列:JavaScript 控件的使用
向页面中添加的控件可分为两种类型:标准的HTML控件和WinJS库控件.其中标准的HTML控件是指HTML标准中定义的基本控件,如按钮和复选框:WinJS库控件是为开发基于JavaScript 的Wi ...
- WPF 模仿 UltraEdit 文件查看器系列一 用户控件
WPF 模仿 UltraEdit 文件查看器系列一 用户控件 运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-10 章节: 起步 添加用户控件 ...
- C#控件系列--文本类控件
C#控件系列--文本类控件 文本类控件主要包含Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能 Label用来 ...
- WPF从我炫系列4---装饰控件的用法
这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollView ...
- WPF编游戏系列 之四 用户控件
原文:WPF编游戏系列 之四 用户控件 在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2. ...
- 【转】PyQt5系列教程(七)控件
PyQt5系列教程(七)控件 软硬件环境 Windows 10 Python 3.4.2 PyQt 5.5.1 PyCharm 5.0.4 前言 控件是PyQt应用程序的基石.PyQt5自带很多不 ...
- Win10系列:C#应用控件进阶10
EllipseGeometry EllipseGeometry控件可以用于绘制椭圆,通过定义EllipseGeometry控件的Center属性确定椭圆的圆心坐标,使用此控件的RadiusX 和Rad ...
- Win10系列:C#应用控件进阶8
LineGeometry LineGeometry控件通过指定直线的起点和终点来定义线.LineGeometry对象无法进行自我绘制,因此同样需要使用 Path元素来辅助呈现.LineGeometry ...
- Win10系列:C#应用控件进阶7
PathGeometry 前面介绍了Path的使用方法,接下来介绍PathGeometry类.PathGeometry提供了描绘由弧线.曲线和直线组成的多个复杂图形的方法.PathGeometry的核 ...
随机推荐
- vxworks开发中simulator的使用之建立虚拟网卡
在使用windriver workben ch开发vxWorks应用时,有时需要在本机上利用Simulator跑一下程序,这就需要你安装一个虚拟的网卡.vxWorks自带了这些工具,下面,以windo ...
- C#隐藏父类
一.override和new 关键字隐藏父类的方法 正常情况下,父类virtual的方法,子类override class Animal { public virtual void EatFood() ...
- Sublime报错
Sublime出现 unable to read project的错误对话框 每次重新开启都会弹出对话框 解决办法: 1.关闭Sublime 2.C:\Users\Administrator\AppD ...
- 【题解】Luogu P4438 [HNOI/AHOI2018]道路
原题传送门 实际就是一道简单的树形dp 设f[u][i][j]表示从根结点到结点u经过i条未翻修公路,j条未翻修铁路的贡献最小值 边界条件:f[leaf][i][j]=(A+i)(B+j)C (题目上 ...
- maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
转自https://blog.csdn.net/lovesomnus/article/details/49512777 在maven中央库中查找ojdbc,发现最新的版本是10.2.0.4.0,然后在 ...
- 记python使用grpc
using grpc in Python gRPC是基于http/2的RPC框架,使用ProtoBuf作为底层数据序列化.Nginx服务器2018年3月17日引入gRPC支持. gRPC 是用来实现跨 ...
- python程序—封装案例
需求: 1.房子有户型.总面积.家具名称列表 房子没有任何家具 2.家具有名字和占地面积,其中 席梦思(bed):4平米 衣柜(chest): 2平米 餐桌(table): 1.5平米 3.将以上3个 ...
- CentOS7安装GUI图形界面
本文转自centOS7下安装GUI图形界面,侵权删. 1. 在命令行下 输入下面的命令来安装Gnome包. # yum groupinstall "GNOME Desktop" & ...
- python中import与from方法总结
一.模块&包简介 模块:所谓模块就是一个.py文件,用来存放变量,方法的文件,便于在其他python文件中导入(通过import或from). 包(package): 包是更大的组织单位,用来 ...
- HTML5外包注意事项-开发HTML5游戏的九大坑与解决方法剖析
随着移动社区兴起,势必带动HTML5的革命.未来一两年内,HTML5移动游戏必将呈现大爆发趋势. 以下是整理的HTML5游戏研发.市场趋势以及渠道布局和技术解决方案的内容.希望大家能从本文中找到对HT ...