Время разработки WPF Загрузка глобальных ресурсов, когда выполняется действие по компоновке - PullRequest
3 голосов
/ 18 августа 2011

У меня есть приложение WPF, в которое я добавил свой собственный Sub Main () для некоторой обработки и отображения анимированного заставки перед загрузкой главного окна.Часть процесса для выполнения этой работы заключалась в изменении действия Build для Application.xaml на «Page», а не «ApplicationDefinition».

Все работает хорошо во время выполнения, но в конструкторе VS мое главное окно имеетпроблемы с загрузкой пользовательских элементов управления на его поверхность.Если посмотреть глубже, то кажется, что пользовательский элемент управления не может найти ресурс стиля, расположенный в ресурсах Application.xaml - по крайней мере, во время разработки.Во время выполнения не возникает никаких проблем.

Я предполагаю, что каким-то образом переход от 'AppicationDefinition' к 'Page' для действия по сборке Application.xaml каким-то образом отключил способность приложения загружать ресурсы во время разработки.

Здесь есть статья , в которой описывается та же проблема, что и у меня, но решение было неправильно помечено как ответ, поскольку оно явно не решает проблему времени разработки.Другой человек ответил, но это решение состояло в том, чтобы просто создавать экземпляры ресурсов повсюду, а не в одном месте - не то, что я хочу.

Я нашел статью Джоша Смита здесь , в которойкажется очень многообещающим в отношении выполнения собственного кода, когда приложение загружается во время разработки, но я не знаю, что добавить после кода раздела «TODO».Я думаю, как-то вызвать компонент Initialize для моего класса Application, но он не создается во время разработки ... верно?

    '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 во время разработки, чтобы мой дизайнер правильно отображал стилизованные пользовательские элементы управления?Или, в качестве альтернативы, как я могу объявить эти глобальные ресурсы, чтобы они работали как во время проектирования, так и во время выполнения?

...