WPF - 如何将 DrawingImage 放置在图像内?

问题描述 投票:0回答:1

我想在 Image 对象上绘制一个矩形,并在每边留下 10 的边框。然而,它总是将矩形推入图像的左上角。

这是代码:

        DrawingGroup theCanvas = new DrawingGroup();
        GeometryDrawing D = new GeometryDrawing(Brushes.LightGray, new Pen(Brushes.Red, 2.0), new RectangleGeometry(new Rect(10, 10, Image_Canvas.Width - 20, Image_Canvas.Height - 20)));
        theCanvas.Children.Add(D);
        Image_Canvas.Source = new DrawingImage(theCanvas);

矩形以正确的大小绘制,但其左上角是 (0,0) 而不是 (10,10)。 请注意,如果我添加第二个具有白色(非空)背景、左上角位于 (0,0) 且大小等于图像大小的矩形,则此方法有效。

除了从全尺寸矩形开始之外,还有其他方法可以将对象放入图像中的特定位置吗?

wpf graphics
1个回答
0
投票

添加一个覆盖整个目标区域的透明矩形:

DrawingGroup theCanvas = new DrawingGroup();

theCanvas.Children.Add(new GeometryDrawing(
    Brushes.Transparent,
    null,
    new RectangleGeometry(new Rect(0, 0, Image_Canvas.Width, Image_Canvas.Height))));

GeometryDrawing D = new GeometryDrawing(
    Brushes.LightGray,
    new Pen(Brushes.Red, 2.0),
    new RectangleGeometry(new Rect(10, 10, Image_Canvas.Width - 20, Image_Canvas.Height - 20)));
theCanvas.Children.Add(D);

Image_Canvas.Source = new DrawingImage(theCanvas);
© www.soinside.com 2019 - 2024. All rights reserved.