John Whitmire Ответов: 1

Что я пропустил при настройке инструментария materialdesign toolkit для WPF?


Я построил приложение WPF в VS 2015, которое включает в себя пользовательский UserControl. Затем я установил пакет MaterialDesignXAMLToolkit (из nuget) и следовал инструкциям в разделе Начало Работы · MaterialDesignInXAML/MaterialDesignInXamlToolkit Wiki · GitHub[^ Как и ожидалось, стиль изменился на многих элементах управления, но не все работает так, как я думаю, что это должно быть:

1) Инструкции по установке заставляют меня добавить эти атрибуты в Главное окно:
TextElement.Foreground="{DynamicResource MaterialDesignBody}"
Background="{DynamicResource MaterialDesignPaper}"
Visual Studio жалуется, что не может найти эти ресурсы. У него нет проблем с поиском ресурсов стиля кнопок, которые я применил к своему UserControl. Почему он не может найти этих двоих?

2) документация, по-видимому, указывает на то, что я должен иметь возможность ссылаться на цвета темы для использования в других <Style> элементы, но я так и не смог понять, как это сделать.

3) из доступных видео я вижу, что должен иметь возможность добавлять элементы управления из инструментария в свой инструментарий, но когда я просматриваю библиотеки DLL для этой цели, там нет никаких импортируемых элементов управления.

Я не смог найти правильную инструкцию, чтобы заполнить мой пробел в знаниях по этому вопросу. Что я упускаю?

Обновление:
  • Ничто из этого не блокирует меня, но я хочу убедиться, что у меня все настроено правильно, прежде чем я начну настраивать вещи.
  • Я нашел ответ на вопрос № 2 в Вики.
  • Я клонировал исходный код и запустил демо-версию. (Это не так просто, как подразумевается в документах.) Это помогло моему пониманию.
  • Я начинаю задаваться вопросом, не является ли причиной № 1 просто то, что документ устарел.
  •  

    Что я уже пробовал:

    Я дважды проверил выполнение инструкций в документе "начало работы".
    Я подтвердил, что добавленные библиотеки DLL находятся в ссылках.
    Я просмотрел 4 вводных видео по использованию инструментария.

    Gerry Schmitz

    Просто игнорируйте эти утверждения, если это означает, что вы не можете встать и бежать. Если вы не можете найти эти 2 имени с помощью глобального поиска решений, то вам что-то не хватает, но (динамический ресурс) "цвета" - это не конец света; установите статические, если вам нужно.

    1 Ответов

    Рейтинг:
    1

    Richard Deeming

    То MaterialDesignBody и MaterialDesignPaper стили определяются в теме. Если ваше запущенное приложение не может их найти, то, похоже, вы пропустили часть настройки:

    Окончательное приложение.xaml должно выглядеть примерно так:
    <Application x:Class="Example.App" ... xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" ...>
        <Application.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <materialDesign:BundledTheme BaseTheme="Light" PrimaryColor="DeepPurple" SecondaryColor="Lime" />
                    <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" /> 
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Application.Resources>
    </Application>
    Если у вас нет ни того ни другого materialDesign:BundledTheme или materialDesign:CustomColorTheme в ваших Объединенных словарях динамические ресурсы не будут найдены.


    John Whitmire

    @Richard Deeming - О, если бы все было так просто. Добавление словарей в App.xaml-это шаг 1 Инструкции по началу работы. Они есть; если бы их не было, у меня не было бы доступа к ресурсам, которые я уже использую (стили и кисти).
    Перестройка библиотек с помощью демонстрационного приложения вызвала множество предупреждений о вещах, которые не определены в ссылочном пространстве имен. Примерно половина относится к Драгаблзу и Махаппсу, которых у меня нет, поэтому они меня не касаются, но остальные намекают на то, что произошла большая попытка переименования, которая не распространилась на все места, где она затронула... как в документе "начало работы". Я думаю, что теперь знаю, где искать ответ на #1, а #3 может быть просто непониманием того, что было представлено в видео.