【问题标题】:Information when DynamicResource could not be found during runtime?运行时找不到动态资源时的信息?
【发布时间】:2012-08-22 18:40:54
【问题描述】:

在我当前的项目中,我有一个相当大的基于 WPF 的应用程序,其中包含大量静态和动态资源。 由于过去进行了许多重构和更改,因此在运行时无法找到许多 DynamicResources,因此没有应用任何值。

我喜欢做的是运行应用程序并在找不到 DynamicResource 时获取输出、异常或其他任何内容。

我尝试构建一个 DefaultTraceListener 和一个 Converter 来检查未使用的 DynamicResources,但无济于事。

有没有人可以帮我解决这个问题?

例子:

    <Grid.Resources>
      <Style x:Key="myStyle1" TargetType="{x:Type TextBlock}">
        <Setter Property="Background" Value="Blue"></Setter>
      </Style>
    </Grid.Resources>
    <StackPanel>
      <TextBlock Style="{DynamicResource myStyle1}">DynamicResource exists</TextBlock>
      <TextBlock Style="{DynamicResource myStyle3}">DynamicResource does not exist</TextBlock>
    </StackPanel>

如何在运行时通知我 myStyle3 不存在?

提前致谢!

【问题讨论】:

  • 您是否仍在使用 WPF Inspector 作为发现任何丢失的动态资源的首选选项?遗憾的是,正如另一位用户 here 所报告的那样,WPF Inspector 为我崩溃了,所以我正在检查您是否找到了任何其他可行的选项(我没有发现 Snoop 对这个问题有帮助)。
  • 刚刚测试过,它对我来说仍然可以正常工作。 WPF Inspector 0.9.9,我正在附加到从 Visual Studio 2012 运行的应用程序。

标签: wpf xaml resourcedictionary


【解决方案1】:

有很多工具显示女巫绑定不起作用..

  • WPF Inspector 是我最喜欢的工具,看看吧。 WPF Inspector
  • Snoop utility 就是其中之一。简而言之 - 在右上角,您会找到允许过滤视觉效果的下拉列表,只需选择具有绑定错误的视觉效果。来源:How to locate the source of a binding error?
  • 在 Visual Studio 中,您可以在“调试”菜单“异常”中启用所有异常(存在绑定错误),然后检查所有内容。

但我不知道这是否正是你想要的,让其他人回答这个......

【讨论】:

  • 非常感谢您的建议! WPF Inspector 正是我所需要的。 “未解析的动态资源”有一条规则。
猜你喜欢
  • 2015-04-03
  • 1970-01-01
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 1970-01-01
  • 2015-02-01
相关资源
最近更新 更多