Стили по умолчанию не разрешаются из внешней сборки во время выполнения - PullRequest
0 голосов
/ 23 февраля 2012

У меня проблемы с разрешением ресурсов из внешней сборки.

У меня есть файл Styles.xaml в проекте под названием Theme, и у меня есть стиль кнопки по умолчанию, который был объявлен следующим образом:

    <Style TargetType="{x:Type Button}" x:Key="{x:Type Button}">
    <!--Setters here-->
    </Style>

И затем в отдельном проекте WPF (но в том же решении) у меня есть следующее в файле app.xaml:

    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary
        Source="/Theme;component/Styles.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>

Затем в главном окне,Я объявляю кнопку по умолчанию без прикрепленного к ней стиля, например, так:

    <Button Width="100" Height="100" />

В представлении конструктора появляется кнопка для выбора стиля из файла Styles.xaml, но когда я собираю и запускаю проектКнопка по умолчанию использует стандартный стиль кнопки.

Я проверил, чтобы файл Theme.dll был скопирован в каталог сборки WPF (и он есть), поэтому я не знаю, почему эточто происходит.

Интересно, что если я определю стиль кнопки следующим образом

    <Style TargetType="{x:Type Button}" x:Key="MyStyle">

, а затем ссылаюсь на него непосредственно на кнопке в другом проекте, как этот

    <Button Style={StaticResource MyStyle} Width="100" Height="100" />

Это поднимаетстиль в представлении дизайна и работает нормально, когда проект создается и выполняется.

Есть идеи?Любая помощь будет отличной!

Крис

1 Ответ

1 голос
/ 23 февраля 2012

Вам может понадобиться использовать полный pack URI , где вы ссылаетесь на файл XAML, а именно на siteoforigin, если вы не ссылаетесь на встроенные ресурсы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...