#239 – 重写Shape类创建自定义图形(Creating a Custom Shape by Overriding the Shape Class)

翻译 2016年08月30日 15:29:45

如果你需要一个任何Shape类的子类都无法显示出来的特殊图形。你可以通过继承Shape类来创建自定义图形来实现。

你通过重写Shape的DefiningGeometry 属性来定义自定义图形的形状。在属性的get方法,创建一个Geometry类实例并返回。在下面的例子中,我们创建一个Geometry 实例,并用StreamGeometryContext 将它绘制出来。

public class MyWeirdShape : Shape
{
    protected override Geometry DefiningGeometry
    {
        get { return GenerateMyWeirdGeometry(); }
    }
 
    private Geometry GenerateMyWeirdGeometry()
    {
        StreamGeometry geom = new StreamGeometry();
        using (StreamGeometryContext gc = geom.Open())
        {
            // isFilled = false, isClosed = true
            gc.BeginFigure(new Point(50.0, 50.0), false, true);
            gc.ArcTo(new Point(75.0, 75.0), new Size(10.0, 20.0), 0.0, false, SweepDirection.Clockwise, true, true);
            gc.ArcTo(new Point(100.0, 100.0), new Size(10.0, 20.0), 0.0, false, SweepDirection.Clockwise, true, true);
        }
 
        return geom;
    }
}

在XAML中使用:

<StackPanel>
    <local:MyWeirdShape Height="150" Width="150" Stroke="Black" StrokeThickness="2"/>
</StackPanel>

效果图:





相关文章推荐

自定义控件shape详解

[TOC] android开发中需要使用自定义资源文件,shape文件可以做成任意形状经常用作背景色。 在AS中可以在drawable文件下右键新建resource file 然后在文件内将标题改...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Android 自定义图形 shape

Android 自定义图形 shape Android中可以通过xml制作自定义图形shap,默认是巨型的,shap有五个子标签 1. size:图形的长宽。 2. corners:设置图形为圆角...

Android 自定义shape图形效果

本文转载自:http://blog.csdn.net/lvyan2012/article/details/10307197 具体实现代码:     http://schemas.android...

android中使用shape自定义图形

android中使用shape自定义图形

自定义Radio(shape/selector)

  • 2016年03月08日 10:41
  • 6.2MB
  • 下载

Android <shape>定义图形

shape标签可以用于自定义一些简单的图形一个简单例子,定义一个圆角矩形:在res/drawable目录下创建example.xml ...

自定义shape

  • 2013年12月23日 09:47
  • 1.89MB
  • 下载

Android 使用Shape自定义背景

一、shape各个元素的属性详解
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:#239 – 重写Shape类创建自定义图形(Creating a Custom Shape by Overriding the Shape Class)
举报原因:
原因补充:

(最多只允许输入30个字)