WPF形状、画刷和变换
2014-01-30 22:29
239 查看
在许多用户界面技术中,普通控件和自定义绘图之间具有清晰的区别。通常来说,绘图特性只用于特定的应用程序。例如,游戏、数据可视化和物理仿真等。WPF具有一个非常不同的原则。它以相同的方式处理预先构建的控件和自定义绘制的图形。不仅可以使用WPF的绘图支持为用户界面创建付图形的可视化元素,还可以通过他最大限度的利用动画和控件模板等特性。本次分析WPF的2D绘图特性,首先是用于形状回执的基本元素。接着将分析如何使用画刷绘制替他们的边框和内部。然后学习如何使用变换对形状和元素进行旋转、扭曲以及其他操作。最后学习使形状和其他元素半透明。
12.1 理解形状
在WPF用户界面中,绘制2D图形内容的最简单方法是使用形状(shape):专门用于表示简单的直线、椭圆、矩形以及多边形的类。从技术角度来看,形状就是所谓的绘图图元(primitive)。WPF中形状的最重要的细节是,它们都继承自FrameworkElement类。因此,形状是元素。这样的结果是:
形状绘制自身。不需要管理无效的情况和绘图过程。例如,当移动内容、改变窗口尺寸或改变形状属性时,不需要手动重新绘制形状。
使用与其他元素相同的方式组织形状。也就是可以在任何布局容器中放置一个形状。
形状支持与其他元素相同的事件。这意味着为了处理焦点、按下键盘、移动鼠标以及单击鼠标等,不需要进行任何额外的工作。可以使用用于其他元素的相同的事件集,并且同样支持工具提示、上下文菜单和拖放操作。
12.1.1 Shape类
呢个形状都继承自抽象的System.Windows.Shapes.Shape类。如下图显示了形状类的继承层次。
View Code
12.1 理解形状
在WPF用户界面中,绘制2D图形内容的最简单方法是使用形状(shape):专门用于表示简单的直线、椭圆、矩形以及多边形的类。从技术角度来看,形状就是所谓的绘图图元(primitive)。WPF中形状的最重要的细节是,它们都继承自FrameworkElement类。因此,形状是元素。这样的结果是:
形状绘制自身。不需要管理无效的情况和绘图过程。例如,当移动内容、改变窗口尺寸或改变形状属性时,不需要手动重新绘制形状。
使用与其他元素相同的方式组织形状。也就是可以在任何布局容器中放置一个形状。
形状支持与其他元素相同的事件。这意味着为了处理焦点、按下键盘、移动鼠标以及单击鼠标等,不需要进行任何额外的工作。可以使用用于其他元素的相同的事件集,并且同样支持工具提示、上下文菜单和拖放操作。
12.1.1 Shape类
呢个形状都继承自抽象的System.Windows.Shapes.Shape类。如下图显示了形状类的继承层次。
<Rectangle Canvas.Left="10" Canvas.Top="10" Width="271" Height="100" Stroke="Black"> <Rectangle.Fill> <ImageBrush ImageSource="logo.gif" Stretch="None"></ImageBrush> </Rectangle.Fill> </Rectangle> <Rectangle Canvas.Left="10" Canvas.Top="120" Width="200" Height="200" Stroke="Black"> <Rectangle.Fill> <ImageBrush ImageSource="logo.gif" Stretch="Uniform" Viewbox="0.4 0.5 0.2 0.2"></ImageBrush> </Rectangle.Fill> </Rectangle>
View Code
相关文章推荐
- WPF 形状。变换和画刷 一
- WPF画刷、形状和变换学习笔记
- WPF-画刷、绘图、几何绘图、图形的效果与滤镜、图形变换和动画
- 第12章 形状、画刷和变换(1)——变换形状
- WPF 形状and变换and画刷
- 第12章 形状、画刷和变换(2)——变换元素
- WPF 现状,变换和画刷 二
- 一点一滴掌握WPF应用系列 - 画刷使用(2):ImageBrush
- 【C#/WPF】Image图片的Transform变换:平移、缩放、旋转
- 二维图形的矩阵变换(三)——在WPF中的应用矩阵变换
- 简述WPF中的画刷(Brush)
- wpf 形状 RichTextBox
- WPF,Silverlight与XAML读书笔记第三十四 - 可视化效果之2D变换
- matlab练习程序(矩形变换为单连通形状)
- 二维图形的矩阵变换(三)——在WPF中的应用矩阵变换
- 利用opencv提取Hu不变量特征 形状匹配 机器学习识别手写数字 傅里叶变换
- 黑马程序员_学习日记84_814WP7开发(画刷Brush、变换Transform、样式、换肤)
- 跟着小王学习wpf系列三 颜色和画刷
- Wpf图片变换一:通过WPF实现图片的扩大、缩小、翻转、移动实例代码