我想使用 C# 和 XAML 创建一个 Windows 8 应用程序。
我想要一个图像的不同部分是可点击的,就像你在 HTML 中使用 imagemap 元素一样。
可能有一种方法可以对单个图像执行此操作,但很难正确定位它们。
那么是否可以在 XAML 中使图像可点击?
xaml 中的简单概念示例...
添加了命名空间;)
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
<Grid Height="300" Width="300">
<Grid.Background>
<Image/> <!-- Add your image source here,
you dont want to know the picture I was going to put :) -->
</Grid.Background>
<Rectangle Height="20" Width="20" Stroke="Red" StrokeThickness="2" Margin="60,120">
<i:Interaction.Triggers>
<!-- Couldn't recall if its "Click" event or "MouseLeftButtonDown" -->
<i:EventTrigger EventName="MouseLeftButtonDown">
<ei:ChangePropertyAction TargetName="Blah"
PropertyName="Visibility"
Value="Visible" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Rectangle>
<TextBlock Text="Whoa Dude, Where's my click?" x:Name="Blah" FontSize="50" Visibility="Collapsed"/>
</Grid>
您当然可以添加事件来跟踪 MouseDown 和 MouseUp 事件并将它们转换为您自己的 Click 事件......但这在 WPF 中听起来不正确,显然有例外。如果您正在制作一个安全系统,该系统依赖于具有用户定义模式的可自定义图像来单击图像 - 当然可以。但是,如果您在 Photoshop 中绘制用户界面并且想要完成这项工作 - 您做错了:您失去了样式、矢量渲染、特定于控件的事件 - 本质上是 WPF 的整个理念。
底线:除非您指定一个任务来证明使用图像是合理的,否则答案只能是:不要这样做。