WPF AutomationPeer在触摸屏设备上崩溃

掌握

我创建了一个WPF应用程序。它在台式机上完全可以正常工作,但是一旦在触摸屏上运行该应用程序,它就会崩溃。我已经关闭了触摸屏进程,该应用程序运行正常。我想知道有没有人能找到比禁用触摸屏过程更好的修复程序,因为这在Microsoft Surface或Windows Tablet上不起作用。

我目前正在使用.Net 4.5

格伦·托马斯

我也有很多WPF问题AutomationPeer

您可以通过不返回子控件的AutomationPeers来强制WPF UI元素使用行为与默认行为不同的自定义AutomationPeer来解决问题。这可能会停止任何UI自动化工作,但是希望您能像在我的情况下那样,不使用UI自动化。

创建一个自定义自动化对等类,该类继承FrameworkElementAutomationPeer并覆盖该GetChildrenCore方法,以返回一个空列表,而不是子控件自动化对等。当某些东西尝试遍历AutomationPeers树时,这应该可以避免发生问题。

还要覆盖,GetAutomationControlTypeCore以指定将在其上使用自动化对等方的控件类型。在此示例中,我将AutomationControlTypeas作为构造函数参数传递如果您将自定义自动化对等体应用于Windows,则应该解决您的问题,因为我认为root元素用于返回所有子项。

public class MockAutomationPeer : FrameworkElementAutomationPeer
{
    AutomationControlType _controlType;

    public MockAutomationPeer(FrameworkElement owner, AutomationControlType controlType)
        : base(owner)
    {
        _controlType = controlType;
    }

    protected override string GetNameCore()
    {
        return "MockAutomationPeer";
    }

    protected override AutomationControlType GetAutomationControlTypeCore()
    {
        return _controlType;
    }

    protected override List<AutomationPeer> GetChildrenCore()
    {
        return new List<AutomationPeer>();
    }
}

要使用自定义自动化对等方OnCreateAutomationPeer,请在您的UI元素(例如Window)中覆盖该方法:

protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer()
{
    return new MockAutomationPeer(this, AutomationControlType.Window);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WPF:工具提示放置在触摸屏上的行为不同

来自分类Dev

当WPF输入控件聚焦在触摸屏上时如何使其显示虚拟键盘

来自分类Dev

我的WPF应用程序可以在触摸屏上运行吗?

来自分类Dev

我的WPF应用程序可以在触摸屏上运行吗?

来自分类Dev

WPF DocumentViewer 启用 XPS 文档的触摸屏滚动

来自分类Dev

我可以在触摸屏上用按钮渲染WPF窗口并读取输入吗?有什么建议吗?

来自分类Dev

如何在C#WPF中在触摸屏上识别输入指针是鼠标还是手指?

来自分类Dev

CSS:在触摸屏设备上的悬停行为

来自分类Dev

使用触摸屏设备在画布上绘图

来自分类Dev

CSS-模拟:在触摸屏设备上悬停效果

来自分类Dev

使用触摸屏设备在画布上绘图

来自分类Dev

悬停伪类在触摸屏设备上的表现如何

来自分类Dev

WPF带触摸屏,列表框打开模式窗口不响应

来自分类Dev

带触摸屏监视器和Windows 10的WPF Control Focus

来自分类Dev

如何在 WPF 触摸屏应用程序中使用触控笔启用滚动?

来自分类Dev

pygtk用于触摸屏设备

来自分类Dev

JetBrains IDE在触摸屏上滚动

来自分类Dev

在触摸屏上处理悬停事件

来自分类Dev

CWAC相机在触摸屏上拍照

来自分类Dev

触摸屏上的画布问题

来自分类Dev

触摸屏上难以点击的链接

来自分类Dev

触摸屏上的画布问题

来自分类Dev

在Debian上配置触摸屏?

来自分类Dev

在Nodewebkit上禁用触摸屏(Windows)

来自分类Dev

在触摸屏上保留悬停效果

来自分类Dev

在触摸屏设备上未调用角ng-click函数

来自分类Dev

可以在触摸屏设备上使用p5.js的鼠标变量吗?(JAVASCRIPT)

来自分类Dev

简单的单击事件,可在Ubuntu上与触摸屏设备一起使用

来自分类Dev

如何在Android设备上使用方向控制修复触摸屏事件?

Related 相关文章

  1. 1

    WPF:工具提示放置在触摸屏上的行为不同

  2. 2

    当WPF输入控件聚焦在触摸屏上时如何使其显示虚拟键盘

  3. 3

    我的WPF应用程序可以在触摸屏上运行吗?

  4. 4

    我的WPF应用程序可以在触摸屏上运行吗?

  5. 5

    WPF DocumentViewer 启用 XPS 文档的触摸屏滚动

  6. 6

    我可以在触摸屏上用按钮渲染WPF窗口并读取输入吗?有什么建议吗?

  7. 7

    如何在C#WPF中在触摸屏上识别输入指针是鼠标还是手指?

  8. 8

    CSS:在触摸屏设备上的悬停行为

  9. 9

    使用触摸屏设备在画布上绘图

  10. 10

    CSS-模拟:在触摸屏设备上悬停效果

  11. 11

    使用触摸屏设备在画布上绘图

  12. 12

    悬停伪类在触摸屏设备上的表现如何

  13. 13

    WPF带触摸屏,列表框打开模式窗口不响应

  14. 14

    带触摸屏监视器和Windows 10的WPF Control Focus

  15. 15

    如何在 WPF 触摸屏应用程序中使用触控笔启用滚动?

  16. 16

    pygtk用于触摸屏设备

  17. 17

    JetBrains IDE在触摸屏上滚动

  18. 18

    在触摸屏上处理悬停事件

  19. 19

    CWAC相机在触摸屏上拍照

  20. 20

    触摸屏上的画布问题

  21. 21

    触摸屏上难以点击的链接

  22. 22

    触摸屏上的画布问题

  23. 23

    在Debian上配置触摸屏?

  24. 24

    在Nodewebkit上禁用触摸屏(Windows)

  25. 25

    在触摸屏上保留悬停效果

  26. 26

    在触摸屏设备上未调用角ng-click函数

  27. 27

    可以在触摸屏设备上使用p5.js的鼠标变量吗?(JAVASCRIPT)

  28. 28

    简单的单击事件,可在Ubuntu上与触摸屏设备一起使用

  29. 29

    如何在Android设备上使用方向控制修复触摸屏事件?

热门标签

归档