0

我正在创建一个应用程序(用于平板电脑),用户将在其中填写检查表。作为最后一步,导演必须能够签署(连同其他一些人)。

因为我想保持我的表单小而简洁,所以我希望在一个图像控件上创建一个点击事件,它会弹出我的签名画布窗口。

我的图像控件的 XAML 代码

...
<DockPanel HorizontalAlignment="Stretch" Name="dpDirectorImg" VerticalAlignment="Stretch" Grid.Column="1" Grid.Row="8">
   <Image Height="Auto" Name="imgDirectorSignature" Stretch="Uniform" Width="Auto" MouseDown="imgDirectorSignature_MouseDown" />             
</DockPanel>
...

VB代码

Private Sub imgDirectorSignature_MouseDown(sender As Object, e As System.Windows.Input.MouseButtonEventArgs) Handles imgDirectorSignature.MouseDown
    MsgBox("Hello World")
End Sub

例如,在以下屏幕截图中,用户将触摸/单击红色矩形(其中包含一个图像控件):

签名位置

这会提示这个窗口:

签名窗口

我的问题:我似乎无法触发图像上的事件。我已经尝试过 TouchDown、MouseDown、StylusDown、GotFocus(属性 Focasable 设置为 true),但似乎没有任何东西触发它。

4

1 回答 1

1

好吧,现在我们发现了问题所在。

您将来如何停止使用空图像而使用矩形:

<DockPanel HorizontalAlignment="Stretch" Name="dpDirectorImg" VerticalAlignment="Stretch" Grid.Column="1" Grid.Row="8">
   <Rectangle MouseDown="imgDirectorSignature_MouseDown" />             
</DockPanel>

如果矩形默认有任何背景颜色,您可以将其更改为透明

Background = Transparent

很高兴我能在这方面为您提供帮助,并注意到,当图像的背景或来源为 NULL 时,wpf 中的命中测试将不起作用。这是设计使然。

将背景设置为透明或您喜欢的任何颜色:)

于 2013-10-28T20:00:39.773 回答