0

In my ResourceDictionary Resource_Color I have defined this row:

 <Color x:Key="MainColor">Black</Color> 

Now, I want to use this MainColor in another resource file, for example Resource_DataGrid.

 <Style.Triggers> <Trigger Property="IsSelected" Value="True"> <Setter Property="Foreground" Value="{StaticResource MainColor}" /> 

. . . In this mode doesn't work. How can I write this declaration ?

1 Answer 1

2

Use ResourceDictionary.MergedDictionaries

Window1.xaml

<Window x:Class="Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="Auto" Width="Auto"> <Window.Resources> <ResourceDictionary Source="Dictionary2.xaml" /> </Window.Resources> <Grid> <TextBox Text="TESTING" FontWeight="Bold" Margin="30" /> </Grid> </Window> 

Dictionary1.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Color x:Key="MainColor">Blue</Color> <SolidColorBrush x:Key="MainBrush" Color="{StaticResource MainColor}" /> </ResourceDictionary> 

Dictionary2.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Dictionary1.xaml" /> </ResourceDictionary.MergedDictionaries> <Style TargetType="TextBox"> <Setter Property="Foreground" Value="{StaticResource MainBrush}" /> </Style> </ResourceDictionary> 

Also, the Foreground property is usually a Brush, not a Color. My example shows it.

Sign up to request clarification or add additional context in comments.

1 Comment

Thank you very much for your help ;-)

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.