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

时间:2013-01-18 17:09:59

标签: c# wpf xaml

我想使用C#和XAML创建Windows 8应用程序。

我想让一个图像的不同部分可以点击,就像使用HTML中的imagemap元素一样。

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

那么可以在XAML中点击图像吗?

2 个答案:

答案 0 :(得分:2)

您肯定可以添加事件来跟踪MouseDown和MouseUp事件,并将它们转换为您自己的Click事件......但这在WPF中听起来不对,显然有例外。如果您正在制作一个依赖于可自定义图像的安全系统,并使用用户定义的图片来点击图像 - 当然。但是,如果你在Photoshop中绘制用户界面并想要做到这一点 - 你做错了:你失去了样式,矢量渲染,特定于控件的事件 - 基本上是WPF的整个想法。

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

答案 1 :(得分:2)

仅仅是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>