You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF:如何在Image控件内定位DrawingImage以保留边距

WPF Image控件绘制矩形定位问题解决方法

问题核心是DrawingGroup的默认边界是其包含图形的实际范围:当你只绘制从(10,10)开始的矩形时,DrawingGroup的Bounds会从(10,10)算起,而Image控件会把DrawingImage的内容对齐到自身左上角,导致你设置的(10,10)视觉上变成了Image的(0,0)。

不用绘制全尺寸背景的解决方法很直接——显式指定DrawingGroup的边界为整个Image控件的尺寸,让它的坐标系统和Image控件完全匹配:

DrawingGroup theCanvas = new DrawingGroup();
// 让DrawingGroup的边界覆盖整个Image控件区域
theCanvas.Bounds = 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);

这样设置后,你定义的矩形坐标就会相对于Image控件的左上角计算,(10,10)的位置就能正确显示出10单位的边距。

内容的提问来源于stack exchange,提问作者Don Del Grande

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 09:36:09