是否有任何工具/库(.NET / WPF)来测量并存储用户界面的导航数据进行分析? [英] Are there any tools/libraries (.Net/WPF) to measure and store UI navigation data for analysis?

查看:169
本文介绍了是否有任何工具/库(.NET / WPF)来测量并存储用户界面的导航数据进行分析?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要测量并以完善的应用程序的用户体验分析用户的动作和手势的用户界面。我想象的功能跟踪库(比如EQATEC或preemptive的运行智能)将允许这一点。然而,这不会出现这种情况。

I want to measure and analyze user movements and gestures in the UI in order to refine the application user experience. I had imagined that feature-tracking libraries (like EQATEC or Preemptive's Runtime Intelligence) would allow this. However, this does not appear to be the case.

在理想情况下,我希望能够仪的UI,然后捕获鼠标和键盘导航手势通过热图显示。

Ideally, I'd like to be able to instrument a UI and then capture mouse and keyboard navigation gestures to display via a heat-map.

我的搜索想出空。做任何事情OSS或商业存在吗?

My searches have come up empty. Does anything OSS or commercial exist here?

推荐答案

在尝试了多种方法,包括这里的人,以及使用的 UIAutomation活动和的 ETW为WPF ,我已经决定了处理程序WPF事件的一个简单的附件。这使我不仅捕获事件数据,而且还包括具有用户的注意力,所以它是非常容易追踪用户动作和意图的UIElement。没有这一点,我需要捕捉的视觉画面,让视觉确定是怎么回事。

After trying a number of approaches, including the ones here as well as using UIAutomation Events and ETW for WPF, I've decided on a simple attachment of a handler to WPF events. This allows me to not only capture the event data, but also the UIElement which has the users attention, so it is much easier to trace the user action and intention. Without this, I'd need to capture a visual of the screen and make a visual determination of what is going on.

下面是一个示例:

private Int32 _eventCount;

public MainWindow()
{
    InitializeComponent();
    EventManager.RegisterClassHandler(typeof(UIElement), MouseEnterEvent, (RoutedEventHandler)handleEvent, true);
    EventManager.RegisterClassHandler(typeof(UIElement), MouseLeaveEvent, (RoutedEventHandler)handleEvent, true);
    EventManager.RegisterClassHandler(typeof(UIElement), MouseMoveEvent, (RoutedEventHandler)handleEvent, true);
    EventManager.RegisterClassHandler(typeof(UIElement), MouseUpEvent, (RoutedEventHandler)handleEvent, true);
    EventManager.RegisterClassHandler(typeof(UIElement), MouseDownEvent, (RoutedEventHandler)handleEvent, true);
    EventManager.RegisterClassHandler(typeof(UIElement), KeyUpEvent, (RoutedEventHandler)handleEvent, true);
    EventManager.RegisterClassHandler(typeof(UIElement), KeyDownEvent, (RoutedEventHandler)handleEvent, true);
}

private void handleEvent(object sender, RoutedEventArgs e)
{
    var uiElement = e.Source as UIElement;

    if (uiElement == null)
    {
        return;
    }

    EventStatusDisplay.Text = e.Source + " " + e.RoutedEvent.Name;
    EventCountDisplay.Text = (++_eventCount).ToString();
    var over = Mouse.DirectlyOver as UIElement;
    MouseIsOverDisplay.Text = over == null ? "" : over.ToString();
}

虽然这里没有显示,一旦我得到了的UIElement 我执行记录甚至可以再使用 UIElement.DataContext 确定视图模型这带动视图的状态,所以我们可以发现使用过程中的某些工作流程和数据的状态,以及可视状态模式。然后,我们可以得到这样的报告,以及区分并通过工作流程和数据的值进行比较由路径我们的热图。

While it is not shown here, once I get the UIElement I perform logging and can even then use the UIElement.DataContext to determine the state of the ViewModel which is driving the view so we can find patterns of usage during certain workflows and data-states as well as visual states. We can then get reports on this, as well as differentiate and compare our heat maps by paths through workflow and data values.

这篇关于是否有任何工具/库(.NET / WPF)来测量并存储用户界面的导航数据进行分析?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆