问题标签 [snoop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - WPF:绑定仅在使用 Snoop 时有效
我们在 WPF 应用程序中使用自定义弹出窗口。WPF 本机弹出窗口的问题在于:
- 它使用新的 Windown,因此内容最终会出现在另一个可视化树中,这使得变换计算更加复杂,并且您无法控制 Zindex。它总是在其余部分之上。
- 内容松散了 DataContext 和所有继承的属性或资源。
我们的自定义弹出窗口与原生 WPF 弹出窗口的不同之处在于,它将弹出窗口的内容放在同一个窗口的容器中,而不是放在新窗口中。内容是弹出窗口的逻辑子级。因此,它通过 DataContext 和 DP 继承解决了本机弹出问题。
我们的 Popup 像 XAML 中的原生一样工作
但是绑定有一个错误。在弹出窗口的内容中完成绑定时,绑定将不起作用。但是如果我们使用 Snoop ( https://github.com/snoopwpf/snoopwpf ) 并检查对象,Binding 会突然起作用。它使用 datacontext 或 elementname 对每种类型的绑定执行此操作。
在内部,当 snoop 显示对象的 DP 列表时,如果由于某种原因找到绑定,则将其删除并重新放回。所以我们想出了这个相当丑陋的黑客来使绑定工作。加载弹出内容时,我们遍历所有可视子项,通过反射获取其所有 DP,如果它有绑定,我们将其删除并重新放回
警告:丑陋的代码
有谁知道这个问题可能来自哪里以及如何以更清洁的方式解决它
wpf - 如何使用 snoop WPF 进行 UI 自动化
我正在尝试使用 AutomationElement 或 TestWhite/FlaUI 自动化应用程序,问题是 snoopWPF 似乎是唯一能够看到窗口内元素的应用程序,因为它具有注入功能(spy++ 或 inspect.exe 看不到可视化树)。
是否可以使用窥探代码自动单击窗口上的按钮?有什么例子吗?谢谢