构建操作是页面时WPF设计时加载全局资源

时间:2011-08-18 17:27:04

标签: wpf app.xaml

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

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

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

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

我找到了Josh Smith here的一篇文章,当应用程序在设计时加载时,它似乎非常有希望执行你自己的代码,但我不知道在'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中的资源,以便我的设计器正确显示样式化的用户控件?或者,我如何声明这些全局资源,以便它们在设计和运行时都能工作?

0 个答案:

没有答案