在图像的特定位置显示对象

时间:2019-07-13 07:20:48

标签: c# wpf

我有一个位图,我试图在该位图图像的特定位置(基于X和Y)上显示用户控件对象,您有什么解决方案吗?

实际上,我使用了具有特定扩展名(* .ECW)的地图文件。 我也可以在特定位置添加椭圆形或绘制图像,但要添加特定组件(例如,作为用户控件创建的按钮)。 抱歉,无法执行此代码。假设我们有一个图形对象,将图片或地图放在背景上。 现在我们必须在特定点添加一个组件。 我画了这样的椭圆形

ImageLayout BackgroundImageLayout;
protected Bitmap Background;
int  ppiRadius =100;

Background = new Bitmap(Width, Height);
BackgroundImageLayout = ImageLayout.Center;
// Set up the map bitmap
// Get a graphics obejct for the bitmap
var graphics = Graphics.FromImage(Background);
graphics.FillRectangle(new SolidBrush(System.Drawing.Color.Black), 0, 0, 
                          Width, Height);
// Draw the layers to the bitmap
var hdc = graphics.GetHdc();
if (_allLayersHandle != null)
    {
     foreach (var v in _allLayersHandle)
     {
     LastError = GlobalMapperDLL.GM_DrawLayer(hdc, v.Value, 
    ref _currentViewRect, 0, 0,

     Background.Width, Background.Height);
                }
            }
 graphics.ReleaseHdc(hdc); 
 if (LastError != GlobalMapperDLL.GM_Error_t32.GM_Error_None) return;

 _centerPoint = GISConvert.GetCenterPixel();
 graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;                
 var point = GISConvert.LatLonToPixel(sitePosition);      
  graphics.DrawEllipse(new System.Drawing.Pen(System.Drawing.Brushes.Red, 2), new RectangleF((point.X - ppiRadius / 2), (point.Y - ppiRadius / 2), ppiRadius, ppiRadius));
//or  graphics.DrawImage

0 个答案:

没有答案