在我的ResourceDictionary Resource_Color 中,我定义了这一行:
<Color x:Key="MainColor">Black</Color>
现在,我想在另一个资源文件中使用此 MainColor ,例如 Resource_DataGrid 。
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="{StaticResource MainColor}" />
。 。 。 在这种模式下不起作用。 我怎么写这个声明?
答案 0 :(得分:1)
使用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>
此外,Foreground属性通常是Brush,而不是Color。我的例子显示了它。