1

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

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

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

那么是否可以在 XAML 中使图像可点击?

4

2 回答 2

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>
于 2013-01-18T17:36:05.533 回答
2

您当然可以添加事件来跟踪 MouseDown 和 MouseUp 事件并将它们转换为您自己的 Click 事件......但这在 WPF 中听起来不正确,显然有例外。如果您正在制作一个安全系统,该系统依赖于具有用户定义模式的可自定义图像来单击图像 - 当然可以。但是,如果您在 Photoshop 中绘制用户界面并且想要完成这项工作 - 您做错了:您失去了样式、矢量渲染、特定于控件的事件 - 本质上是 WPF 的整个理念。

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

于 2013-01-18T17:17:45.877 回答