有没有办法在XAML上做图像映射

本文关键字:图像 映射 XAML 有没有 | 更新日期: 2023-09-27 17:54:11

我想用c#和XAML创建一个Windows 8应用程序。

我想有一个图像,它的不同部分是可点击的,同样的方式,你可以与imagemap元素在HTML中。

可能有一种方法可以对单个图像进行此操作,但很难正确定位它们。

所以有可能使图像在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的整个思想。

底线:除非你指定了一个任务来证明使用图像是合理的,否则答案只能是:不要这样做。