Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何在图像鼠标向下移动时提示窗口_Wpf_Image_Prompt_Inkcanvas_Tablet Pc - Fatal编程技术网

Wpf 如何在图像鼠标向下移动时提示窗口

Wpf 如何在图像鼠标向下移动时提示窗口,wpf,image,prompt,inkcanvas,tablet-pc,Wpf,Image,Prompt,Inkcanvas,Tablet Pc,我正在创建一个应用程序(用于平板电脑),用户将在其中填写检查表。作为最后一步,导演必须能够(与其他一些人一起)签字 因为我想保持我的表单小而简洁,所以我希望在图像控件上创建一个单击事件,它将弹出我的签名画布窗口 我的图像控件的XAML代码 ... <DockPanel HorizontalAlignment="Stretch" Name="dpDirectorImg" VerticalAlignment="Stretch" Grid.Column="1" Grid.Row="8">

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

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

我的图像控件的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>
...
例如,在以下屏幕截图中,用户将触摸/单击红色矩形(其中包含图像控件):

这将提示此窗口:


我的问题是:我似乎无法触发图像上的事件。我尝试过触地、鼠标向下、StylusDown、GotFocus(属性Focusable设置为true),但似乎没有任何东西触发它。

现在我们发现了问题所在

如果以后不再使用空图像,而是使用矩形:

<DockPanel HorizontalAlignment="Stretch" Name="dpDirectorImg" VerticalAlignment="Stretch" Grid.Column="1" Grid.Row="8">
   <Rectangle MouseDown="imgDirectorSignature_MouseDown" />             
</DockPanel>
很高兴我能在这方面帮助您,请注意,当图像的背景或源为空时,wpf中的命中测试将无法工作。这是故意的


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

将图像放置在按钮中。将“替代按钮默认样式”属性设置为true,这样就不会有类似按钮的动画和类似按钮的边框。您将能够收听按钮。单击事件。或者你可以使用按钮命令:)@devhedgehog我明白了。。。我使用图像是因为在未来,我想在用户接受后在图像控件中描绘书面签名。。。我想我可以把它作为按钮的背景,它会工作吗?这与按钮是一个建议。当您在图像控件上侦听MouseDown事件时,它也会起作用。每个控件都从UIElement继承,UIElement定义了MouseDown、MouseLeftButtonDown、MouseMove等事件,。。。所以每个控件都有这些东西。现在谈谈你的情况。我看不到你在图像控件上监听鼠标事件的任何地方。@devhedgehog我修改了代码,但仍然无法触发它,我一定是在做一些完全错误的事情。。。我是新来的WPFLet我给你写一个答案,这样你就可以标记它了,我得到了一些小的点啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈。。。如果将其设置为“无”,则不会触发事件。另外,我找不到矩形的任何
背景
属性。那个愚蠢的矩形糟透了。我讨厌来自互联网的代码,然后它没有描述的属性哈哈。离开Rectable,让DockPanel捕捉事件。您可以在DockPanel级别分配MouseDown。
<DockPanel HorizontalAlignment="Stretch" Name="dpDirectorImg" VerticalAlignment="Stretch" Grid.Column="1" Grid.Row="8">
   <Rectangle MouseDown="imgDirectorSignature_MouseDown" />             
</DockPanel>
Background = Transparent