我有一个函数接收一个图形,我需要将其部分地显示为DrawingImage(即:它的位置和大小将被缩小/更改以适合目标区域)。WPF:如何裁剪/剪裁绘图或DrawingImage?
如何剪切/剪切原始图形的区域? 或者,在转换到DrawingImage后(如何裁剪DrawingImage),做这件事更容易?
我有一个函数接收一个图形,我需要将其部分地显示为DrawingImage(即:它的位置和大小将被缩小/更改以适合目标区域)。WPF:如何裁剪/剪裁绘图或DrawingImage?
如何剪切/剪切原始图形的区域? 或者,在转换到DrawingImage后(如何裁剪DrawingImage),做这件事更容易?
的解决方案是封装原始图纸在DrawingGroup,然后应用裁剪几何...
public DrawingGroup MyClippingFunc(Drawing OriginalDrawing, Rect ClippingArea)
{
var Group = new DrawingGroup();
Group.Children.Add(OriginalDrawing);
Group.ClipGeometry = new RectangleGeometry(ClippingArea);
return Group;
}
我对你在问什么有点困惑,但也许我对这个类似问题的答案将有所帮助?
How can I use a PathGeometry as a mask for a BitmapSource (or any image data)?
这是另一种方式来做到这一点,使用InkCanvas StrokeCollection中的类一个例子。
using (DrawingContext drawingContext = drawingGroup.Open())
{
drawingContext.PushClip(new RectangleGeometry(yourRectangleObject));
Strokes.Draw(drawingContext);
drawingContext.Pop();
}
对不起,我的意思是DrawingImage而不是图像。 – 2010-10-19 04:18:34
没错,但我仍然不明白你需要如何使用它。 DrawingImage可以设置为图像控件的来源。在这种情况下,我认为设置image.clip属性的链接解决方案会得到你想要的? – 2010-10-19 17:35:03
我需要在库函数中执行此操作,其中还不知道结果将在何处/如何使用(例如,您提出的图像控件)。 – 2010-10-20 23:47:58