У меня есть файл (icons.xaml), который я добавил как файл в Ресурсы моего проекта. Содержание файла приведено ниже:
Icons.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<VisualBrush x:Key="Bucket"
Stretch="Uniform">
<VisualBrush.Visual>
<Viewbox Stretch="xxxx">
<Canvas Width="xxxxx"
Height="xxxx"> and so on...
Свойства файла Icons.xaml в версии 2017
Теперь я хочу использовать VisualBrush, упомянутый выше, в моем коде XAML (View) напрямую. Строки приведены ниже:
Код XAML (просмотр)
<Setter Property="Icon">
<Setter.Value>
<Rectangle Fill="{Binding Bucket, Source={x:Static resx:Resources.Icons}}"/>
</Setter.Value>
</Setter>
Пространство имен "resx" определяется как:
xmlns:resx="clr-namespace:MyProjectNamespace.Properties"
Когда я запускаю свой проект, я не вижу, чтобы мои значки были привязаны к свойству заливки прямоугольника, и я получаю некоторую ошибку xaml intellisense, которая является "Не удается разрешить свойство" Ведро "в контексте типа" строка ".
Цель: я хочу использовать ключ Visualbrush непосредственно в XAML в свойстве Fill моего Rectangle в моем коде просмотра.
Примечание. У меня есть ограничение: я не могу использовать код в представлении, приведенном ниже, я не могу использовать вкладку <ResourceDictionary>
в коде xaml.
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyProjectNamespace;component/Resources/Icons.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Я придерживаюсь правильного подхода в отношении своей цели или мне следует изменить этот подход?
Я видел методы, которые используются здесь в этом ответе, но ни один из них не работает Получить значения из * .resx файлов в XAML