单击图像并显示消息框,具体取决于单击的位置

San*_*ull 2 c# wpf

我有这个世界地图图像的想法,当我点击它上面的国家时,它会显示该国家的信息,MessageBox例如,是否有人知道如何做到这一点?

我有一个矩形和一个按钮,当我点击按钮它显示矩形中的图像,但我想如果我使用多边形塑造国家的,但我有点卡住.

世界地图

我想让每个国家分开,也许点击时边界会亮起来

Nas*_*ine 5

您可以使用WPF轻松完成此操作:

  1. 以SVG格式查找漂亮的世界地图.我在维基百科上使用过这个:

世界地图维基百科

  1. 下载并安装Inkscape,然后打开刚刚下载的SVG.Inkscape有一个很好的功能,可以将SVG保存为XAML.

InkScape保存对话框

  1. 导入ViewBox从XAML文件到您的WPF窗口的/ etc:

VS XAML编辑器

  1. 对于PathXAML中的每个,您可以添加MouseEnter/ MouseLeave事件处理程序,也可以对所有Paths 使用相同的处理程序

示例代码:

 private void CountryMouseEnter(object sender, MouseEventArgs e)
 {
     var path = sender as Path;
     if (path != null)
     {
         path.Fill = new SolidColorBrush(Colors.Aqua);
     }
 }

 private void Country_MouseLeave(object sender, MouseEventArgs e)
 {
     var path = sender as Path;
     if (path != null)
     {
         path.Fill = new SolidColorBrush(Colors.Black);
     }
 }
Run Code Online (Sandbox Code Playgroud)
  1. 现在只需改变颜色/显示MessageBoxes等问题.

    演示

GitHub上