У меня есть .dll, содержащая тему 'engine'. Я почти завершил этот движок со встроенным списком, который обрабатывает темы через DLL. Короче, что я пытаюсь выполнить, это автономная .dll, с которой я могу ссылаться из любого проекта и (без добавления кода в приложение для хостинга) иметь свои темы, стили и т. Д.настройка MainWindow.Background для внешнего ресурса
это работает, но я столкнулся с чем-то вроде затруднительного положения. Поскольку .dll загружает необходимые файлы xaml во время выполнения с использованием синтаксиса URI, сами управляющие приложения не знают о ресурсах, пока приложение не будет загружено. Теперь это генерирует предупреждение о компиляции, но при запуске приложения нет проблем.
Мой вопрос связан с этой проблемой времени компиляции. Как установить цвет фона основного окна, если я не могу просмотреть кисти, доступные из моей .dll, до времени выполнения?
<Window x:Class="Check.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mycon="clr-namespace:ThemeLibrary.MyControls;assembly=ThemeLibrary"
Title="MainWindow" Height="350" Width="525" WindowStyle="None" AllowsTransparency="True"
Background="{***DynamicResource ResourceKey=TransparentColorBrush***}">
снова, несмотря на то, что есть ошибка, программа компилируется и работает нормально, потому что, если динамический ресурс не может быть решена окно только по умолчанию, но как только .dll загружает словарь ресурс, содержащий кисть, ключ это TransparentColorBrush, тогда фон окна изменяется соответствующим образом. Но если я передам свой .dll, чтобы сказать, что публика будет играть, они не будут ЗНАТЬ, какие разные клавиши кисти и, следовательно, не смогут этого взломать.
Итак, как я могу установить Application.Current.MainWindow.Background = (кисть из загруженного ресурсного словаря ресурсов URI или самого словаря) внутри .dll, или выставлять ключи кистей как общедоступные свойства?