我想在 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) 且大小等于图像大小的矩形,则此方法有效。
除了从全尺寸矩形开始之外,还有其他方法可以将对象放入图像中的特定位置吗?
添加一个覆盖整个目标区域的透明矩形:
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);