Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf Can';我看不到中风_Wpf_Inheritance_Shape - Fatal编程技术网

Wpf Can';我看不到中风

Wpf Can';我看不到中风,wpf,inheritance,shape,Wpf,Inheritance,Shape,我从形状派生,这是定义几何体中的内容 protected override Geometry DefiningGeometry { get { topLeft.X = Math.Min(Start.X, End.X); topLeft.Y = Math.Min(Start.Y, End.Y); width.X = Math.Abs(Start.X - End.X);

我从形状派生,这是定义几何体中的内容

protected override Geometry DefiningGeometry
    {
        get 
        {
            topLeft.X = Math.Min(Start.X, End.X);
            topLeft.Y = Math.Min(Start.Y, End.Y);
            width.X = Math.Abs(Start.X - End.X);
            width.Y = Math.Abs(Start.Y - End.Y);
            rectBounds.X = topLeft.X;
            rectBounds.Y = topLeft.Y;
            rectBounds.Width = width.X;
            rectBounds.Height = width.Y;
            rectGeo.Rect = rectBounds;
            return rectGeo;
        }
    }
我看到的是填充,但不是笔划,因为sroke是宽度和高度之外的附加值,我试图通过设置为它留出一些空间:

Width = width.X  + StrokeThickness;
//same for height.

但是什么都不会被画出来,有人知道我做错了什么吗?顺便说一句,背景和笔划笔刷的颜色不同。

笔划厚度
出于某种原因应该大于1(我猜是
填充
笔刷覆盖了它),或者不设置
填充
属性,并且
笔划厚度
1可以工作。

笔划始终位于填充顶部。厚度低于1.0根本没有问题,尽管非常薄的笔划自然会变得不可见

“填充”完全填充形状的几何图形。笔划渲染几何体的轮廓,一半笔划位于内部,一半位于形状外部

永远不要将笔划宽度添加到形状的宽度中(这只会在矩形上起作用)。有关的属性的行为方式,请参见MSDN

不要从形状派生来创建简单的几何对象。使用预定义的矩形、椭圆、直线等。用于更复杂的几何图形并设置Path.Data


另外,请参阅MSDN中的,可能还有。

确保您的笔划笔刷是diff,然后是bg和diff,然后是您的形状