ResourceDict поделиться и установить шаблон
Я буду использовать XAMLReader для загрузки экранов wpf.
У меня есть некоторые ControlTemplates для файла Buttons.xaml, и я держу его в общей библиотеке классов (ClassLibrary1). Buttons.xaml выглядит так:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ControlTemplate x:Key="LeftButton" TargetType="{x:Type Button}">
// Some codes
</ControlTemplate>
<ControlTemplate x:Key="RightButton" TargetType="{x:Type Button}">
// Some codes
</ControlTemplate>
</ResourceDictionary>
В основном проекте WPF эта библиотека добавлена в качестве ссылки.
Мой xaml такой:
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="800" Height="600">
<Grid>
<Grid.Resources>
<ResourceDictionary x:Key="testSource">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary x:Name="s" Source="pack://application:,,,/ClassLibrary1;component/Buttons.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Grid.Resources>
<Button Template="{DynamicResource RightButton}" Content="TestBtn" HorizontalAlignment="Left" Width="100" Height="100" Margin="474,529,0,0" ></Button>
</Grid>
</UserControl>
Когда я использую Template="{DynamicResource RightButton}", шаблон загружается неправильно (на самом деле на экране нет никаких признаков кнопки).
Также нет ошибки при загрузке ресурсов.
Я не мог найти, что я должен использовать, чтобы загрузить шаблон на эту кнопку. Может кто-нибудь мне помочь?