我对这个世界地图图像有这种想法,当我在其上单击一个国家/地区时,它会在MessageBox
中显示该国家/地区的信息,例如,有人知道如何做到这一点吗?
我有一个矩形和一个按钮,当我单击该按钮时,它会在矩形中显示图像,但是我想如果我使用多边形来塑造该国家的形状,但是我有点卡住了。
我想将每个国家/地区分开,单击后边框可能会亮起来
参考方案
您可以使用WPF轻松完成此操作:
查找SVG格式的精美世界地图。我使用了Wikipedia中的this one:
下载并安装Inkscape,然后打开您刚刚下载的SVG。 Inkscape具有一项不错的功能,可以将SVG保存为XAML。
将ViewBox
从XAML文件导入到WPF窗口/等中:
对于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
等。
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 …