wpf UIElement是否有唯一标识符?

问题描述 投票:8回答:6

为了在WPF表单中记录用户操作,我添加了一些全局事件处理程序

我想准确记录触发事件的控件,是否有wpf UIElement的某些唯一标识符,如ASP.Net中的ClientId?

c# wpf wpf-controls uielement
6个回答
11
投票
为什么不使用哈希码。

您可以比较这些值以确保它们是同一对象,并且使用.GetHashCode()可以轻松获得它们>


编辑

显然,每次运行该程序都不同,因此实际上这是一个坏主意,除非您希望在每次记录该过程时都更新日志。仍然有可能

我的意思是你

可以

在创建日志时为每个对象存储一个哈希值,但是我不知道我是否喜欢]

2
投票
似乎我找到了问题的答案,答案是“否,现在是解决问题的方法,正如MSDN在此处(http://msdn.microsoft.com/zh-cn/magazine/dd483216.aspx)所述]

1
投票
您可以执行此操作的一种方法是使用自定义属性。像这样...

0
投票
您只是想添加Namex:Name,以便Window /UserControl/ Page将控件公开给具有指定名称的其他类。

0
投票
我相信,对于记录用户操作,可以使用UIAutomation treeAutomationElement.AutomationId属性,因为默认情况下所有标准UI控件都支持此方法。许多第三方控件的元素(例如,网格单元)也支持AutomationId。 AutomationId对于创建测试自动化脚本很有用。

© www.soinside.com 2019 - 2024. All rights reserved.