Невозможно использовать TextBox после включения MaterialDesignInXaml - PullRequest
1 голос
/ 08 мая 2019

Я строю библиотеку (плагин для Revit). У меня есть Window, в который я успешно включил дизайн материала.

Когда я пытаюсь добавить TextBox элемент управления к этому Window, я получаю следующую ошибку

System.Windows.Markup.XamlParseException: 'Предоставить значение' System.Windows.Markup.StaticResourceHolder 'вызвало исключение.'
Внутреннее исключение: NotImplementedException: метод или операция не реализованы.

Поскольку я собираю библиотеку, у меня нет файла App.xaml, поэтому я создал словарь ресурсов со следующим содержимым:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.DeepPurple.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

Я включаю его в свой Window, используя

<Window.Resources>
    <ResourceDictionary Source="/MyAsembly;component/MaterialDesign.xaml" />
</Window.Resources>

Как я уже сказал, использование простого простого TextBox выдает исключение, без стилей, без чего-либо

<TextBox />

Все остальные элементы управления WPF, которые я использовал до сих пор, работают нормально после включения дизайна материалов в окне / странице.

У меня есть другое Window в том же приложении, где у меня уже есть TextBox. Если я попытаюсь включить MaterialDesign в этот Window, я получу ту же ошибку; без MaterialDesing TextBox работает нормально. Если я включу MaterialDesing и закомментирую TextBox, код будет работать нормально.

Любая помощь высоко ценится.

РЕДАКТИРОВАТЬ: демонстрационное приложение, которое демонстрирует проблему можно найти здесь .

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

Вы также должны предоставить XAML namespace вместе с декларацией ResourceDictionary, как показано ниже.

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.DeepPurple.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
0 голосов
/ 08 мая 2019

поместите эту строку в тег основного окна xmlns: materialDesign = "http://materialdesigninxaml.net/winfx/xaml/themes"

...