WPF中文网

Shape概述

形状是WPF另一大系列控件。WPF所有的形状都继承于Shape基类。那么,WPF提供了哪些可用的形状呢?我们用一张图来说明它的子类。

形状名称说明
Ellipse椭圆形
Line在两个点之间绘制直线。
Rectangle绘制矩形。
Polyline绘制一系列相互连接的直线。
Polygon绘制多边形,它是由一系列相互连接的线条构成的闭合形状。
Path绘制一系列相互连接的直线和曲线。

Shape是一个抽象基类,它不能被实例化,所以我们在使用时只能实例化它的子类。而Shape的父类是FrameworkElement,所以,所有的Shape子类都是一个UIElement 类,因此形状对象可以用在面板和大多数控件中。 由于 Canvas 面板支持其子对象的绝对位置,因此特别适合创建复杂的图形。

我们来看看Shape的定义

一、Shape的定义

public abstract class Shape : FrameworkElement
{
    public static readonly DependencyProperty StretchProperty;
    public static readonly DependencyProperty StrokeDashArrayProperty;
    public static readonly DependencyProperty StrokeDashOffsetProperty;
    public static readonly DependencyProperty StrokeLineJoinProperty;
    public static readonly DependencyProperty StrokeDashCapProperty;
    public static readonly DependencyProperty StrokeMiterLimitProperty;
    public static readonly DependencyProperty StrokeStartLineCapProperty;
    public static readonly DependencyProperty StrokeThicknessProperty;
    public static readonly DependencyProperty StrokeProperty;
    public static readonly DependencyProperty FillProperty;
    public static readonly DependencyProperty StrokeEndLineCapProperty;

    protected Shape();

    public Brush Stroke { get; set; }
    public PenLineCap StrokeEndLineCap { get; set; }
    public PenLineCap StrokeStartLineCap { get; set; }
    public double StrokeThickness { get; set; }
    public Brush Fill { get; set; }
    public double StrokeDashOffset { get; set; }
    public virtual Geometry RenderedGeometry { get; }
    public Stretch Stretch { get; set; }
    public DoubleCollection StrokeDashArray { get; set; }
    public double StrokeMiterLimit { get; set; }
    public PenLineCap StrokeDashCap { get; set; }
    public virtual Transform GeometryTransform { get; }
    public PenLineJoin StrokeLineJoin { get; set; }
    protected abstract Geometry DefiningGeometry { get; }

    protected override Size ArrangeOverride(Size finalSize);
    protected override Size MeasureOverride(Size constraint);
    protected override void OnRender(DrawingContext drawingContext);

}

Shape基类提供了许多公共属性,如下表所示。

二、属性成员

属性名称说明
Stroke获取或设置Shape的边框颜色画刷
StrokeEndLineCap获取或设置Shape描述线的末端的样式
StrokeStartLineCap获取或设置Shape描述线的开头的样式
StrokeThickness获取或设置Shape边框的厚度
Fill获取或设置Shape的内部填充颜色
StrokeDashOffset获取或设置短划线模式内短划线开始处的距离
RenderedGeometry获取或设置Shape的几何
Stretch获取或设置Shape的填充模式
StrokeDashArray获取或设置勾勒形状轮廓的短划线和间隙的模式的值
StrokeMiterLimit获取或设置一个限制到一半的斜接长度比
StrokeDashCap获取或设置 System.Windows.Media.PenLineCap 枚举值,该值指定如何绘制虚线的末端。
GeometryTransform获取或设置Shape的转换
StrokeLineJoin获取或设置Shape的顶点处使用的联接类型。
DefiningGeometry获取Shape的Geometry

copyright @重庆教主 WPF中文网 联系站长:(QQ)23611316 (微信)movieclip (QQ群).NET小白课堂:864486030 | 本文由WPF中文网原创发布,谢绝转载 渝ICP备2023009518号-1