Как сделать стиль на основе ресурса, отличного от StaticResource
У меня есть окно, которое имеет ResourceDictionary в ресурсах. Я сделал стиль CheckBox, основанный на том, который определен в ResourceDictionary. Более того, я хотел бы сделать RadioButton на основе стиля ToggleButton, который НЕ основан на том, который определен в ResourceDictionary. Я использовал ControlTemplate, как показано в следующем коде, но в этом случае TemplateBinding необходим для всех задействованных свойств. Есть ли лучший способ реализовать мою цель без использования ControlTemplate?
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/theme;component/BasicTheme.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid>
<Grid.Resources>
<Style TargetType="CheckBox" BasedOn="{StaticResource {x:Type CheckBox}}">
<!-- Several style setters -->
</Style>
<Style x:Key="Edit"/>
<ControlTemplate x:Key="ToggleTemplate" TargetType="{x:Type ToggleButton}">
<ToggleButton Style="{StaticResource Edit}"
Content="{TemplateBinding Content}"
IsChecked="{TemplateBinding IsChecked}"/>
</ControlTemplate>
</Grid.Resources>
<CheckBox/>
<RadioButton Template="{DynamicResource ToggleTemplate}"/>
</Grid>
Следующий код не работает должным образом.
<Grid>
<Grid.Resources>
<Style x:Key="Edit"/>
<Style TargetType="{x:Type RadioButton}" BasedOn="{StaticResource Edit}" x:Key="ToggleStyle"/>
</Grid.Resources>
<RadioButton Style="{StaticResource ToggleStyle}"/>
</Grid>