WPF 形状、画刷和变换
1.1 形状就是所谓的绘图图元,都继承自FrameworkElement类。
1.2 形状特点:绘制自身;使用与其他元素相同的方式组织形状;支持与其他元素相同的事件。
形状类的继承层次:

1.3 Shape类属性:


2.1 矩形(Rectangle)和椭圆(Ellipse)
2.1.1 基本属性
Width和High:定义形状尺寸
Fill和Stroke:同时设置或者单独设置使得形状可见。(不设置形状不会显示)
MinWidth,MinHeigth:
HorizontalAligment:如果设置为stretch,并删除width值,形状的宽度就会是窗口的宽度。
VerticalAligment:
Margin:
2.1.2 Ellipse类没有增加任何属性 Rectangle增加了RadiusX和RadiusY属性,来创建圆形拐角。
2.1.3 改变形状的尺寸和放置形状
椭圆和矩形如果没有设置宽高,都会根据所在的容器设置自身尺寸。如果容器时StackPanel,形状就会缩小至看不见。
改变形状尺寸的行为依赖于Shape类中定义的Stretch属性,默认情况下属性值为Fill.

通常将Stretch设置为Fill相当于HorizontalAlignment和VerticalAlignment设置为Stretch。但是如果形状设置了宽高,就会忽略HorizontalAlignment和VerticalAlignment,而stretch仍然起作用。
2.1.4 放置形状的理想容器时Canvas,如果使用Canvas,标签的顺序很重要
3. Canvas的限制是图形不能改变自身尺寸来适应更大更小的窗口.可使用ViewBox联合Canvas解决这个问题
ViewBox继承自Decorator类(与Border类相似),该类只接受一个元素(可以是布局容器,其中可包含大量形状,这些形状将同步的改变尺寸),并拉伸或者缩小子元素以适应可用的空间。
ViewBox可在容器包含组合形状中发挥作用。保证形状(内部区域和边框)按比例发生变化
ViewBox.Stretch属性:默认Uniform ....
ViewBox.StretchDirection属性:....
4. 直线(Line)
5. 折线(PolyLine)
6. 多边形(Polygon)
7. 直线线帽和直线交点
8. 点划线
9. 像素对齐
10. 画刷
画刷用来填充区域(元素的背景色,前景色以及边框,形状的内部填充和笔画stroke)。
最简单的类型是SoildColorBrush,在XAML中设置形状的Fill或者Stroke,使用的是SoildColorBrush,在后台完成绘制。
画刷的基本特点:支持更改通知;支持部分透明(只需修改Opacity属性);通过SystemBrushes类可以访问一类特殊的画刷。
画刷类:

10.1 SolidColorBrush
设置Foreground属性测试文本颜色,设置Background绘制文本背后的空间,Stroke绘制形状背后的边框。Fill绘制形状的内部。

浙公网安备 33010602011771号