【发布时间】:2014-07-18 11:54:28
【问题描述】:
我正在制作自定义控件,它的 Render 看起来像这样
protected override void OnRender(DrawingContext context)
{
var geometry = new PathGeometry(new[] { new PathFigure(new Point(0, 0), new [] {
new LineSegment(new Point(ActualWidth, 0), true),
new LineSegment(new Point(ActualWidth, ActualHeight), true),
new LineSegment(new Point(0, ActualHeight), true),
}, true) });
context.DrawGeometry(new LinearGradientBrush(Colors.White, Colors.Black, 90),
new Pen(Brushes.White, 10), geometry);
}
为什么中风如此不准确?在屏幕截图中,您可以看到白色笔划超出控制范围
我不能简单地用ClipToBounds 剪辑它,因为我需要准确地绘制并且希望使用笔触而不是手动绘制轮廓(图形比矩形复杂得多)。
我可以根据校正后的大小计算几何图形,但我不知道如何计算笔画。
如何使DrawGeometry 适合控制范围内的笔划?或者也许有其他方法可以为复杂形状的图形绘制轮廓?
【问题讨论】: