背景前提:
将不同类库共同使用的资源文件,放在一个类库中。在需要使用时,引用这个类库;
工程结构:
其中ResourceDictionary为exe程序,引用了Style类库和User类库;同时User类库引用了Style类库,为了使用Style类库中的样式;
App.xaml
<Application x:Class="ResourceDictionary.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>
<ResourceDictionary.MergedDictionaries>
<!-- Common base theme -->
<ResourceDictionary Source="pack://application:,,,/Style;component/Button.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
Style类库Button.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="sssss" TargetType="{x:Type Button}">
<Setter Property="Background" Value="Red"/>
</Style>
</ResourceDictionary>
User类库User.xaml
<UserControl x:Class="User.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Style;component/Button.xaml"/>
<ResourceDictionary Source="/User;Component/LocalButton.xaml"/>
</ResourceDictionary.MergedDictionaries>
<ControlTemplate x:Key="btn1">
<Grid>
<Rectangle>
<Rectangle.Fill>
<ImageBrush Stretch="None"
ImageSource="/PulseMedical.Modules.Position;component/Resources/icon_help.png" ></ImageBrush>
</Rectangle.Fill>
</Rectangle>
</Grid>
</ControlTemplate>
</ResourceDictionary>
</UserControl.Resources>
<Grid>
<Button x:Name="button" Style="{StaticResource sssss}">
</Button>
</Grid>
</UserControl>
User类库LocalButton.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="sss" TargetType="{x:Type Button}">
<Setter Property="Background" Value="Black"/>
</Style>
</ResourceDictionary>