First put the resources in a resource dictioanry xaml file that goes into the shared resource assembly. In this sample the assembly is called Common and the common resources are placed in a subdirectory WPF of this assembly. Their is no ".cs" file associated with this Xaml file. Here is the Xaml file in the "Common" assembly with a shared listbox style called "MyListStyle":
To reference these resources in another WPF component, do it from the Resources area of the WPF component. For example
To reference those resources from a WPF Application:
Once added to an application's resources they can be accessed anywhere in the normal fashion:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:System="clr-namespace:System;assembly=mscorlib"> <Style x:Key="MyListStyle" TargetType="ListBox"> ... </Style> </ResourceDictionary>
To reference these resources in another WPF component, do it from the Resources area of the WPF component. For example
<Window ... > <Window.Resources> <ResourceDictionary Source="/Common;component/WPF/Resources.xaml" /> </Window.Resources> ... <ListBox ... Style="{StaticResource MyListStyle}" /> ... </Window>
To reference those resources from a WPF Application:
<Application ... > <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/Common;component/WPF/Resources.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> </Application>
Once added to an application's resources they can be accessed anywhere in the normal fashion:
<Window ... >
...
<ListBox ... Style="{StaticResource MyListStyle}" />
...
</Window>