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

我对这个世界地图图像有这种想法,当我在其上单击一个国家/地区时,它会在MessageBox中显示该国家/地区的信息,例如,有人知道如何做到这一点吗?

我有一个矩形和一个按钮,当我单击该按钮时,它会在矩形中显示图像,但是我想如果我使用多边形来塑造该国家的形状,但是我有点卡住了。

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

我想将每个国家/地区分开,单击后边框可能会亮起来

参考方案

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

查找SVG格式的精美世界地图。我使用了Wikipedia中的this one:

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

下载并安装Inkscape,然后打开您刚刚下载的SVG。 Inkscape具有一项不错的功能,可以将SVG保存为XAML。

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

ViewBox从XAML文件导入到WPF窗口/等中:

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

对于XAML中的每个Path,您可以添加一个MouseEnter / MouseLeave事件处理程序,也可以对所有Path使用相同的事件处理程序。

样例代码:

 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);
     }
 }

现在,只需更改颜色/显示MessageBox等。

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

GitHub

WPF WebBrowser甚至使用ObjectForScripting在单独的线程上锁定UI - javascript

在与WPF Web浏览器控件绑定的ObjectForScripting上调用方法时,网页UI锁定会出现一个奇怪的问题。进一步的研究使我们意识到整个UI(包括WPF应用程序而不是WebBrowser)都已锁定。使用的技术是带有Caliburn.Micro和Autofac的WPF。我在COM可见类上使用方法来推送到Caliburn.Micro提供的事件聚合器。进…

WPF MVVM中的动态TabControl - c#

我几周前开始使用WPF(在C#中),现在我需要一些高级帮助来使用tabcontrol。首先,我正在使用MVVM(模型视图ViewModel)模式来设计我的应用程序,并且我有一个约束,即试图不要在文件(初始化xaml文件)后面的代码中添加代码。现在,我的问题是在MainWindow视图(窗口)中动态创建新的tabItem,当单击按钮(例如“新建选项卡”按钮)时…

WPF-将窗口大小设置为子用户控件大小 - c#

我有一个选项卡控件,该控件动态地填充有包含各种大小的用户控件的选项卡。打开选项卡后,我希望窗口自动调整大小,使其在活动用户控件下有意义。有一种干净的方法可以做到这一点吗?我正在使用标准的mvvm模式。 参考方案 在Window类上使用SizeToContent属性。<Window x:Class="WpfApplication1.MainWi…

在datagrid(wpf)中选择行索引 - c#

如何在datagrid中选择行索引? 事件SelectionChanged以下代码不起作用: private DataGridRow dgr = new DataGridRow(); private void dataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e) { thi…

LeetCode题解75.sort-colors

题目地址 https://leetcode.com/problems/sort-colors/description/ 题目描述 Given an array with n objects colored red, white or blue, sort them in-place so that objects of the same color are …