Использовать StaticResource в корневом элементе XAML

Я хочу использовать StaticResource в корневом элементе документа xaml. Но MSDN говорит:

Статические ссылки ресурсов изнутри словарь ресурсов должен ссылаться на ресурс, который уже определен лексически перед ресурсом Справка. Прямые ссылки не могут разрешается статическим ресурсом ссылка.

И это:

Затем процесс поиска пересекает логическое дерево вверх, родительскому элемент и его ресурсный словарь. Это продолжается до тех пор, пока корневой элемент.

Должен ли я определить свой ресурс в приложении или создать его из кода?

Ответ 1

Фактически вы можете установить любое свойство как элемент, так и атрибут, включая такие же простые, как Window.Left.

Это означает, что вы можете установить значение Left после объявления своих ресурсов.

<Window.Resources>
    <app:LeftConverter
        x:Key="LeftConverter" />
</Window.Resources>

<Window.Left>
    <Binding
        Path="UnconvertedLeft"
        Converter="{StaticResource LeftConverter}" />
</Window.Left>

Ответ 2

Если вам действительно нужно получить доступ к ResourceDictionary из корневого элемента, вы можете ссылаться на него как на DynamicResource, а не на StaticResource - я не уверен, что он будет работать, но это может стоить попробовать.