【问题标题】:Why is Expression Blend 4 not finding resources that are in a global Resource Library为什么 Expression Blend 4 找不到全局资源库中的资源
【发布时间】:2011-10-07 18:12:13
【问题描述】:

由于这个 WPF 项目的某些原因,我在 Blend 中遇到以下异常:

当一个UserControl 位于另一个UserControlWindow 内时,就会发生这种情况。 ItemBorder 是一种存在于链接到应用程序 XAML 文件的资源库中的样式。我将此资源或其库移至何处并不重要。即使我将它直接放入正在使用它的UserControl,我也会得到这个异常。只有当我将其设为本地值而不是资源时,此异常才会消失。此异常仅在 Blend 中发生。它不会在 Visual Studio 中发生(我使用的是 2010),并且在我运行应用程序时也不会发生。

我已经走到了尽头。这个问题意味着我完全无法使用 Expression Blend。

【问题讨论】:

    标签: wpf expression-blend styles


    【解决方案1】:

    尝试将其设为动态资源?

    我对确定静态与动态的规则并不是特别清楚,甚至在下面给出答案,但是在加载资源以将其从静态更改为动态资源时,它为我解决了很多问题。

    What's the difference between StaticResource and DynamicResource in WPF?

    好的,经过一番挖掘,I found this。这篇文章中的 OP 的情况与您的情况非常相似。他的工作建议在 Usercontrol 级别合并资源字典,而不仅仅是通过 App.xaml。

    【讨论】:

    • 动态资源只是一种可以在设置后更改的资源。我想我可以试试这个,但我知道让你的资源动态化是资源密集型的,所以它不是我项目的真正解决方案。
    • 我还没有设置资源后更改资源的情况,但我仍然有足够频繁地通过DynamicResource引用的资源。当您在 Blend 中引用资源时,您是通过 GUI 还是手动操作?
    • 这是一个在我们进行混合之前就开始的项目。所以很多都是手动的,是的。在与其他项目混合使用后,我再也不想回到那个状态了。
    • 您可以删除资源调用的任何可能性(如果您愿意,只需暂时将其注释掉)并尝试通过 Blend GUI 查找资源。
    • 做到了。我什至(通过 Blend GUI)将资源移动到正在使用它的文件中,但它仍然给了我设计器中的异常。
    猜你喜欢
    • 1970-01-01
    • 2013-03-17
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多