Ответ 1
Если они определены в вашем приложении, вы можете использовать Application.Current.FindResource(), чтобы найти их по имени.
Я сделал свой собственный пользовательский конвертер, который задал строку, возвращает Brush
. Теперь я могу возвращать постоянные кисти, такие как Brushes.Red
и т.д., Но я действительно хочу использовать свои собственные цвета, которые я определил в ресурсе приложения.
Как я могу ссылаться на ресурсы приложения в своем собственном классе конверторов? Я бы использовал FindResource
, но, как я уже сказал, это из моего собственного класса конвертера, а не из окна или элемента управления.
Если они определены в вашем приложении, вы можете использовать Application.Current.FindResource(), чтобы найти их по имени.
Добавляя к Reed ответ, если ваш словарь ресурсов является автономным XAML файлом, вам необходимо убедиться, что он (как говорит Рид) "определен в вашем приложении".
App.xaml
<Application x:Class="WpfApplication10.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary Source="Dictionary1.xaml" />
</Application.Resources>
</Application>
Dictionary1.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<TextBlock x:Key="k_foo" Text="FOO" />
</ResourceDictionary>
Build Action
в этом словаре XAML файл может быть установлен на Page
. Он должен находиться в том же каталоге, что и файл App.xaml.