我在 WPF 中有一个图像,我希望根据鼠标当前悬停的位置显示不同的信息。我知道我已经在网站上看到了这一点,但我似乎无法弄清楚在 WPF 中执行此操作的代码。
我使用的图像是美国地图,当用户越过边界时,我需要显示州特定信息。现在我正在使用的实现是Path
在地图顶部以透明方式绘制的一系列 s,然后使用Mouse.MouseEnter
事件来触发更改。问题是更新似乎遭受了可怕的滞后,否则MouseEnter
事件并不总是能正确捕获。
有人知道更好的方法吗?
示例 C#
private void wyoming_MouseEnter(object sender, MouseEventArgs e)
{
//stateName.Text = "Wyoming";
}
示例 XAML
<Canvas MouseDown="Canvas_MouseDown" Name="canvas">
<Viewbox Stretch="Uniform">
<Image Source="USA.png" />
</Viewbox>
<Path Name="wyoming" Stroke="Transparent" StrokeThickness="1" Mouse.MouseEnter="wyoming_MouseEnter" Mouse.MouseMove="wyoming_MouseMove">
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigureCollection>
<PathFigure IsClosed="True" StartPoint="184,121" > <!--NW-->
<PathFigure.Segments>
<PathSegmentCollection>
<LineSegment Point="266,129" />
<LineSegment Point="264,193" />
<LineSegment Point="203,190" />
<LineSegment Point="177,186" />
</PathSegmentCollection>
</PathFigure.Segments>
</PathFigure>
</PathFigureCollection>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>
</Canvas>