【问题标题】:Image MouseDown event not firingImage MouseDown 事件未触发
【发布时间】:2011-02-20 23:02:37
【问题描述】:

我的一位用户的 PC 出现问题,她无法单击图像(好吧,她可以单击它,但没有任何反应)。该图像具有以下 XAML:

<Image Source="./Images/flag.jpg" 
       Name="image1" 
       Stretch="Uniform"
       Height="40"
       HorizontalAlignment="Right" 
       VerticalAlignment="Top" 
       ImageFailed="image1_ImageFailed" 
       Mouse.MouseDown="RotateImage" 
       Margin="0,0,0,0"
       Cursor="Hand"/>

MouseDown 事件由:

private void RotateImage(object sender, MouseEventArgs e)
{
    //Some Code…
}

所有其他用户(其中​​有 50 多个)都可以单击图像并正确执行事件背后的代码。此外,当我登录到她的电脑(使用我的用户名)时,我可以单击图像并正确执行后面的代码。她正在运行 XP,这是 .Net 3.5 应用程序。

此外,当她的鼠标悬停在图像上时,光标会从箭头变为手形。

我已尝试以下方法来缓解此问题:

  • 开始->设置->控制面板->系统->高级->性能->设置:在此我尝试了所有不同的单选按钮,以及复选框的各种组合。没有任何效果。

  • 我已尝试将其从双显示器更改为单显示器。运气不好。

  • 我尝试了各种分辨率设置,但都没有改变结果

她似乎有一个自定义设置阻止将此事件路由到代码,但我找不到它。任何建议将不胜感激。

谢谢!

【问题讨论】:

  • 她只有图片有这个问题吗?她可以单击文本框(在 xaml 中定义)吗?
  • 是的,这是她唯一有问题的控件。其他按钮、文本框、复选框、单选按钮、数据网格、链接等...都工作正常,除了这个应该响应鼠标按下事件的图像。
  • 将 PreviewMouseDown 处理程序放在外部元素(甚至可能是 Window)中,看看是否可以通过?只是不要将 Handled 设置为 true ,这样常规的仍然会触发。另外,无障碍控制面板有什么奇怪的设置吗?

标签: wpf image events system setting


【解决方案1】:

好的,在做了一些 JustABill 建议的测试之后,看来我弄错了。应用程序正在响应 mousedown 事件。但是,按钮背后的代码是响应应用于图像控件的图像文件的名称(并在某些情况下更改图像文件)。问题是某些用户的 PC 无法识别初始图像文件的名称(由程序员指定为默认文件的名称),而其他用户的 PC 可以。此外,我还观察了一位用户的 PC,他一开始对功能没有任何问题。但是在几个小时后运行一些额外的测试后,它停止了工作(没有安装任何更新)。这是一个奇怪且不一致的问题,但我能够通过实现一些默认功能来解决它​​,如果它无法识别当前应用的图像文件的名称,则将新图像文件重新分配给图像控件。这样,一切都开始正常工作了。

感谢 Wallstreet Programmer 和 JustABill 鼓励我尝试一些新事物!

约翰

【讨论】:

  • 我发现它有时会发生,但并非总是如此。似乎这是一个错误。我只在 Windows 10 上遇到这个问题。我的 Windows 8.1 可以正常工作。
猜你喜欢
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2019-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
相关资源
最近更新 更多