我对此世界地图图片有这个想法,当我点击其上的某个国家/地区时,它会在MessageBox
中显示该国家/地区的信息,例如,是否有人知道该怎么做?
我有一个矩形和一个按钮,当我点击按钮时,它会在矩形中显示图像,但我想如果我使用多边形来塑造这个国家的但是我有点卡住了。
我想让每个国家分开,也许点击时边框会亮起
答案 0 :(得分:5)
您可以使用WPF轻松完成此操作:
ViewBox
从XAML文件导入WPF窗口/ etc: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
等等。
答案 1 :(得分:0)
我的第一个想法:您可以将命令绑定到将通过单击某个位置触发的视图。如果您正在使用WPF,则可以将命令参数绑定到命令以获取单击的x和y ... 之后,您必须处理消息框的内容并根据位置xy突出显示边框。
玩得开心:D
答案 2 :(得分:0)
选项1
Code Project上有一个项目创建了一个项目,用于定义可随事件点击的热点。您可以使用它来覆盖您的地图并定义您需要它们的热点。
C# Windows Forms ImageMap Control
选项2
您可以绑定到图片上的MouseUp
事件并使用以下内容查看它是否在Rectangle
private void mapMouseUp(object sender, MouseEventArgs e) {
Rectangle rect1 = new Rectangle(0, 0, 100, 100);
Rectangle rect2 = new Rectangle(0, 100, 100, 100);
if (rect1.Contains(e.Location)) {
// Do your stuff
} else if (rect2.Contains(e.Location)) {
// Do your stuff
}
}