您可以覆盖默认模板。根据组合框是否具有焦点,使用触发器指定要使用的模板。
例如:
<Style TargetType="{x:Type ComboBox}">
<Setter Property="Template" Value="{StaticResource TemplateWhenFocused}" />
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="False" />
<Condition Property="IsFocused" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="Template" Value="{StaticResource TemplateWhenNotFocused}" />
</MultiTrigger>
</Style.Triggers>
</Style>
示例非焦点模板。可能需要调整边距以避免在打开或关闭对象时文本“跳跃”。
<ControlTemplate TargetType="{x:Type ComboBox}" x:Key="StyleWhenNotFocused">
<TextBlock Text="{TemplateBinding Text}"
Foreground="{TemplateBinding Foreground}"
Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}"
Margin="2,0,2,0" />
</ControlTemplate>