我有一個函數接收一個圖形,我需要將其部分地顯示爲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