我在dc (DrawingContext)上绘制了一个Grid,如下所示:
dc.DrawImage(_imageSource, new Rect(x, y, width, height);但是,如果我想旋转我在绘图上下文中绘制的图像呢?
我知道我可以将效果推到绘图上下文中,但是,它会影响所有的绘图,而我只想旋转_imageSource的绘图。
有什么想法吗?
发布于 2012-12-09 17:21:29
您可以在绘制图像之前推送RotateTransform,并在绘制后立即弹出变换。
var transform = new RotateTransform(...);
dc.PushTransform(transform);
dc.DrawImage(_imageSource, new Rect(x, y, width, height));
dc.Pop();或者,您可以创建一个ImageDrawing,将其添加到DrawingGroup (具有Transform属性),然后绘制DrawingGroup:
var drawingGroup = new DrawingGroup();
drawingGroup.Transform = new RotateTransform(...);
drawingGroup.Children.Add(new ImageDrawing(_imageSource, new Rect(x, y, width, height)));
dc.DrawDrawing(drawingGroup);所有的DrawingContext.Draw...方法实际创建并绘制适当的绘图对象。
您还可以执行以下操作,而不是在被覆盖的OnRender()方法中不断地重新绘制所有内容:
https://stackoverflow.com/questions/13786166
复制相似问题