【发布时间】:2014-06-09 16:10:33
【问题描述】:
我正在使用DrawingContext 对象来绘制一系列矩形。我的要求是这样的:
- 我要放置在 (100, 100) 的第一个矩形
- 第二个矩形我想放置在(200, 200)
- 我想放置在 (0, 0) 处的第三个矩形
我使用变换矩阵来实现如下:
-
要将第一个矩形定位在 (100, 100),我使用以下命令:
drawingContext.PushTransform(new TranslateTransform(100, 100)); drawingContext.DrawRectangle(Brushes.Blue, null, new Rect(0, 0, 100, 100));
要将第二个矩形定位在 (200, 200),我使用以下命令: drawingContext.PushTransform(new TranslateTransform(100, 100)); drawingContext.DrawRectangle(Brushes.Blue, null, new Rect(0, 0, 100, 100));
要将第三个矩形定位在 (0, 0),我可以使用 (-200, -200)。 但我很好奇有什么办法可以替换这个累积链并用新位置覆盖整个矩阵 喜欢:drawingContext.PushTransform(new TranslateTransform(0, 0));
这可以在 WinForms 图形上通过如下设置 Transform 属性来实现:
g.Transform = new Matrix();
有什么方法可以打破 WPF 中的累积链
【问题讨论】:
标签: c# wpf wpf-controls