我有一个资源字典如下:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type ComboBox}">
<Setter Property="IsEditable" Value="True" />
</Style>
</ResourceDictionary>
在我的app.xaml中:
<Application x:Class="Client.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>
<ResourceDictionary Source="pack://application:,,,/Resources/ComboBoxResourceDictionary.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
更新
在我的Page.xaml:
中<Page.Resources>
<Style TargetType={x:Type ComboBox}>
<Setter Property="FontSize" Value"20" />
</Style>
</Page.Resources>
<ComboBox....... />
但仍然无法编辑组合框。上面提到的代码有什么问题吗?
答案 0 :(得分:1)
由于您在页面资源下提供了另一种默认样式,所有位于页面下的组合框都不会选择在应用资源下声明的样式。
你应该继承使用 BasedOn
这样在App 下声明的样式:
<Style TargetType="{x:Type ComboBox}"
BasedOn="{StaticResource {x:Type ComboBox}}">
<Setter Property="FontSize" Value="20"/>
</Style>