У меня есть следующий настраиваемый элемент управления
public class MagicButton : Control
{
static MagicButton()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(MagicButton),
new FrameworkPropertyMetadata(typeof(MagicButton)));
}
}
со следующими темами / Generic.xaml
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:l="clr-namespace:WpfApplication4">
<Style TargetType="{x:Type l:MagicButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type l:MagicButton}">
<Border />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type l:MagicButton}"
x:Key="OtherStyle">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type l:MagicButton}">
<Border />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
When I use the MagicButton control using the default style, everything works, but when I try to use "OtherStyle"
<l:MagicButton Style="{StaticResource OtherStyle}"/>
не удается найти стиль за исключением "{" Не удается найти ресурс с именем 'OtherStyle'. Имена ресурсов чувствительны к регистру. "}"
Но если я перенесу OtherStyle в App.xaml, он заработает.
Я не хочу помещать его в App.xaml, но я хочу, чтобы мой файл Themes / Generic.xaml содержал стили по умолчанию, а также стили с ключевыми именами, которые люди могут явно использовать.
<Window.Resources> <ResourceDictionary Source="Themes/Generic.xaml" /> </Window.Resources> <Grid> <local:CustomControl1 Width="100" Height="40" Style="{StaticResource OtherStyle}" Margin="199.5,54.5,217.5,224.5"/> </Grid>
- person Rang   schedule 23.06.2014