Определить словарь ресурсов WPF в приложении Winform - PullRequest
0 голосов
/ 29 мая 2019

Я тестирую возможность создания элемента управления WPF, который можно использовать в существующем приложении Winforms. Цель этого теста - использовать глобально используемый словарь ресурсов WPF.

Мой первый шаг определения настроек стиля в элементе управления работает нормально.

<UserControl.Resources>
    <Style TargetType="Label">
        <Setter Property="Foreground" Value="Black"/>
        <Setter Property="Background" Value="LightYellow"/>
        <Setter Property="FontSize" Value="30"/>
    </Style>
    <Style TargetType="Label" x:Key="myHW">
        <Setter Property="Foreground" Value="Green"/>
        <Setter Property="Background" Value="LightBlue"/>
        <Setter Property="FontSize" Value="30"/>
    </Style>
    <Style TargetType="Label" x:Key="StatusMessage">
        <Setter Property="Foreground" Value="Black"/>
        <Setter Property="Background" Value="LightPink"/>
    </Style>
</UserControl.Resources>

Затем нужно было извлечь информацию о стиле в файл XAML словаря и затем сослаться на него через словарь ресурсов. Этот шаг не работает.

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Dictionaries/ResourceTest.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

Имя сборки : test2

Путь внутри проекта : /Dictionaries/ResourceTest.xaml

Ошибка, полученная при разработке:

Исключение: при поиске словаря ресурсов произошла ошибка "/Dictionaries/ResourceTest.xaml".

Я пробовал варианты синтаксиса URI, представленные Microsoft .

Относится ли тип действия сборки для xaml к проблеме?

1 Ответ

0 голосов
/ 30 мая 2019

Спасибо Джефф Р. за ответ.Это была одна из проблем.

Я продолжал возиться с этим и, наконец, решил несколько проблем.Поскольку это создавалось в приложении Winforms в песочнице, я создал приложение WPF, а затем добавил словарь ресурсов.Было проведено сравнение двух файлов xaml словаря ресурсов для выявления любых различий.

Файл xaml словаря ресурсов нуждался в обновлении следующих параметров:

  • Действие сборки = Страница
  • Пользовательский инструмент = XamlIntelliSenseFileGenerator

Кроме того, отсутствовал правильный открывающий тег в файле словаря.

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

Наконец, так как ввод исходного пути не работал,Я попытался использовать раскрывающийся список «Источник» на странице «Свойства», который затем заполнил необходимый синтаксис пути, который затем соответствовал рекомендованному Джеффу Р. .

В итоге было три проблемы:

  1. Настройки свойств файла словаря ресурсов
  2. Отсутствует открывающий тег XAML
  3. Синтаксис ссылки на URI
...