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,然后是您的形状