《Programming WPF》翻译 第7章 2.图形2011-09-11 博客园 包建强图形时绘图的基础,代表用户界面树的元素。WPF支持多种不同的形状,并为 它们每一个都提供了元素类型。7.2.1基本图形类在这一节列出的所有元素,派生于一个共同的抽象基类Shape。虽然你不能直 接使用这个类,知道它还是有帮助的,因为它定义了一组共同的特性——你可以 在任何形状上使用。这些共同的属性都被连接到形状的内部和外部被绘制的地方 。Fill属性详细指出了Brush要用于填充内部。Line和Polyline这些类没有内部 ,所以它们没有Fill属性。(这比通过有独立的Shape和FilledShape基类使继承 层次复杂化的发式要简单的多)Stroke属性详细指出了用来画形状轮廓的Brush 。如果为你的形状没有详细指出它的Fill或Stroke属性,这将是不可见的,因 为这两种属性默认都是透明的。这看起来特殊——Stroke属性是Brush类型。正如我们早时看到的,WPF定义 了Pen类来详细指明一个线条的厚度、dsah样式以及样子,因此如果Stroke属性 是Brush类型的,这将是更有意义的。WPF实际上确实在内部使用了Pen来绘制形 状的边框。Stroke属性为Brush类型主要是因为它的便利。所有的Pen样式通过独 立的Shape属性对外暴露,正如表7-1所示。这详细指明了该场景的标记——在你 乐于使用默认的钢笔设置的地方,你不需要提供一个完整的Pen定义仅仅是设置 边框颜色。Table 7-1. Shape Stroke properties and Pen equivalents
Shape property | Pen equivalent |
---|
Stroke | Brush |
StrokeThickness | Thickness |
StrokeLineJoin | LineJoin |
StrokeMiterLimit | MiterLimit |
StrokeDashArray | DashArray |
StrokeDashCap | DashCap |
StrokeDashOffset | DashOffset |
StrokeStartLineCap | StartLineCap |
StrokeEndLineCap | EndLineCap |
笔刷和钢笔都详细描述在“Brushes and Pens”一节,在本章的后面。