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
相关产品推荐
相关产品推荐

