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绘制形状的内部。

    

     

      

       

      

    

      

   

 

  

  

posted @ 2020-11-04 12:02  KnowledgePorter  阅读(30)  评论(0)    收藏  举报