【发布时间】:2013-07-26 18:32:36
【问题描述】:
有一些非常有用的工具可以在运行时调试 WPF 应用程序,例如 Snoop、WPF Inspector 和 Xaml Spy,它们允许您偷看正在运行的应用程序并监视属性值、DataContext 更改、路由事件和甚至触发切换。
但我没有设法在其中任何一个中找到如何在运行时监控特定选定控件的状态之间的 VisualStateManager (VSM) 转换。
是否有任何工具可以帮助找出控件未进入特定预期状态的原因(考虑到此应用程序/库缺少源代码)?
更新:问题主要是关于调试编译的代码,当您没有访问源代码时。对于您可以访问源代码here is pretty good explanation 的一种情况。
【问题讨论】:
-
这是个好问题。我认为唯一的方法是使可视化状态管理器尽可能简单和精简。调试 UI 的东西是 WPF 的一个弱点。因此,您可能会尽量避免它。
-
@BillZhang - 是的,同意。如果可以的话,我当然想避免它:/
-
例如,您可以将状态转换放入代码后面的事件处理程序中。由于这些代码纯粹与 UI 相关,因此不会伤害和破坏任何设计模式。
-
@BillZhang,这可能有效,但前提是 您 正在编写处理 VisualStateManager 的代码。但是,如果有一些第三方 UI 组件具有使用 VSM 的自定义控件并且它不能按预期工作但对应用程序至关重要,我们该怎么办?
标签: xaml debugging runtime winrt-xaml visualstatemanager