【发布时间】:2013-12-27 02:00:02
【问题描述】:
我有一个函数接收我需要部分公开为 DrawingImage 的绘图(即:它的位置和大小将减小/更改以适合目标区域)。
如何裁剪/剪辑原始绘图的区域? 或者在转换为 DrawingImage 之后更容易做到这一点(如何剪辑该 DrawingImage)?
【问题讨论】:
我有一个函数接收我需要部分公开为 DrawingImage 的绘图(即:它的位置和大小将减小/更改以适合目标区域)。
如何裁剪/剪辑原始绘图的区域? 或者在转换为 DrawingImage 之后更容易做到这一点(如何剪辑该 DrawingImage)?
【问题讨论】:
解决方案是将原始绘图封装在一个绘图组中,然后应用剪切几何图形...
public DrawingGroup MyClippingFunc(Drawing OriginalDrawing, Rect ClippingArea)
{
var Group = new DrawingGroup();
Group.Children.Add(OriginalDrawing);
Group.ClipGeometry = new RectangleGeometry(ClippingArea);
return Group;
}
【讨论】:
这是另一种方法,以 InkCanvas StrokeCollection 类为例。
using (DrawingContext drawingContext = drawingGroup.Open())
{
drawingContext.PushClip(new RectangleGeometry(yourRectangleObject));
Strokes.Draw(drawingContext);
drawingContext.Pop();
}
【讨论】:
我对你的问题有点困惑,但也许我对这个类似问题的回答会有所帮助?
How can I use a PathGeometry as a mask for a BitmapSource (or any image data)?
【讨论】: