Я хочу использовать StaticResource в корневом элементе xaml документа. Но MSDN заявляет:
Статические ссылки ресурса из словаря ресурса должны сослаться на ресурс, который был уже определен лексически перед ссылкой ресурса. Ссылки вперед не могут быть разрешены статической ссылкой ресурса.
И это:
Процесс поиска тогда пересекает логическое дерево вверх к родительскому элементу и его словарю ресурса. Это продолжается, пока корневой элемент не достигнут.
Я должен определить свой ресурс в приложении или создать его из кода?
Фактически вы можете установить любое свойство как элемент, а также как атрибут, включая такие простые, как Window.Left.
Это означает, что вы можете установить значение Left после объявления ваших ресурсов.
<Window.Resources>
<app:LeftConverter
x:Key="LeftConverter" />
</Window.Resources>
<Window.Left>
<Binding
Path="UnconvertedLeft"
Converter="{StaticResource LeftConverter}" />
</Window.Left>
Если вам действительно нужно получить доступ к ResourceDictionary из корневого элемента, вы можете ссылаться на него как на DynamicResource, а не как на StaticResource - я не уверен, что это сработает, но стоит попробовать.