简短版 您如何处理嵌入到其他窗口/用户/自定义控件中的用户控件中的静态资源查找?因此,Blend 4 可能会在 Visual Studio 已经为您完成的设计时正确呈现它。
长版本 正如问题所暗示的那样,我们有一个窗口,其中包含一些嵌入式用户控件,并且该窗口以及每个嵌入式用户控件都使用静态资源标记扩展来解析对 app.xaml 文件中合并字典中的资源的引用.
在单独打开时,Blend 可以毫无问题地加载和渲染我在 VS Designer Surface 中制作的任何示例用户控件。它可以解决我几乎在任何地方都使用的无数静态资源标记扩展。
每当我尝试打开我的“MainWindow.xml”(一个窗口控件)时,我注意到我收到了 4 - Cannot Create Instance Of Type错误,Blend 4 在 ArtBoard 上很好地告诉我它已经捕获了一些设计时异常。通过将 VS 调试器实例附加到 Blend 来进一步深入研究这些异常,我注意到我引用的每一个静态资源,它都抱怨找不到它。
作为比较,我查看了我创建的自定义控件,它根本没有使用任何静态资源,而是本地资源。我注意到这个自定义控件嵌入到 UserControl 时效果很好。我认为原因很明显!
SO上有没有人知道如何解决这个问题?我尝试了整个 'Add a Design-Time Dictionary' < - 部分工作,嵌入式用户控件仍然没有创建!
研究
更新:可能的解决方案:
- 采用此处介绍的类似方法: GianlucaCucco 答案
- 将所有静态资源查找转换为 UserControls 的本地资源?
- 将所有静态资源查找转换为动态资源。
这些解决方案都不漂亮。= (