#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>

效果图:




举报

相关文章推荐

WPF学习(一)绘制图形的三种方法及区别

WPF中用于绘图的类主要有三个,分别是Shape类、Drawing类和DrawingVisual类,Shape类存在于System.Windows.Shapes命,而Drawing类和DrawingV...

Android 自定义图形 shape

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

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

自定义Shape

。 view plaincopy to clipboardprint?·········10········20...

【Shape】Shape –形状

Shape的初步认识使用 :android:background=”@drawable/shape” 这种形式来添加控件的背景效果 注意:shape只是改变了控件背景的形状而并没有改变控件的形状 ...

Android <shape>定义图形

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

android中使用shape自定义图形

android中使用shape自定义图形

Android 自定义shape图形效果

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

android自定义shape属性

先看效果图,再说话! 图中的这些引导条(原点),ui可以给我们提供,我们自己也可以自定义画!1,首先在res下的drawable建立一个Drawable resource file资源文件,给R...

Android自定义Shape使EditText化身为Bootstrap 风格的 textarea (样式之Shape)

Android样式开发之Shape篇:学习Shape的应用一:案例1:自定义Shape使EditText化身为Bootstrap 风格的 textarea1.在 drawable 中 shape xm...

自定义带shape的TextView

我们在项目中,经常会遇到对TextView添加不同的shape来实现不同的效果,但是这样的一个缺点是造成了各种xml文件混杂在项目中,因此萌发了本文自定义view的想法,实现方式很简单,就是继承了Te...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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