3

我有一个 WPF 应用程序,我添加了自己的 Sub Main() 来进行一些处理并在主窗口加载之前显示动画启动屏幕。完成这项工作的部分过程涉及将 Application.xaml 上的 Build Action 更改为“Page”而不是“ApplicationDefinition”。

一切在运行时运行良好,但在 VS 设计器中,我的主窗口在其表面加载用户控件时出现问题。更深入地看,用户控件似乎无法找到位于 Application.xaml 资源中的样式资源 - 至少在设计时是这样。在运行时没有问题。

我假设为 Application.xaml 的构建操作从“AppicationDefinition”切换到“页面”以某种方式断开了应用程序在设计时加载资源的能力。

这里有一篇文章描述了我遇到的相同问题,但该解决方案被错误地标记为答案,因为它显然没有解决设计时问题。另一个人回答,但该解决方案是简单地在整个地方实例化资源,而不是在一个位置 - 这不是我想要的。

我在这里找到了 Josh Smith 的一篇文章,该文章似乎很有希望在设计时加载应用程序时执行您自己的代码,但我不知道在“TODO”部分代码之后添加什么。我在想以某种方式在我的 Application 类上调用 Initialize 组件,但是在设计时没有实例化......对吗?

    'In AssemblyInfo.vb
    <AttributeUsage(AttributeTargets.Assembly)> _
    Class DesignTimeBootstrapperAttribute
        Inherits Attribute
        Public Sub New()
            Dim dep = New DependencyObject()
            If DesignerProperties.GetIsInDesignMode(dep) Then
                ' TODO: Design-time initialization…
                'Not sure how to get application level resources to load at design time?
            End If
        End Sub

所以我的问题是:如何让应用程序在设计时初始化和加载 application.xaml 中的资源,以便我的设计器正确显示样式化的用户控件?或者,我如何声明这些全局资源,以便它们在设计和运行时都可以工作?

4

0 回答 0