1
我创建了一个我想应用于组合框的FlatCombo样式。唯一不符合我想要的方式是当组合框具有焦点时。我几乎不想表明它有重点。目前在文本区域有一个蓝色突出显示。我认为这是从我的第三方资源字典中挑选出来的。如何调整我的本地风格,使其显示的焦点是浅虚线?在WPF中,如何设置样式,以便当组合框具有焦点时不突出显示?
感谢,
戴夫
<UserControl.Resources>
<Style x:Key="MyFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="-1" StrokeThickness="1" Stroke="Black" StrokeDashArray="1 2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<ControlTemplate x:Key="FlatCombo" TargetType="{x:Type ComboBox}">
<ContentControl
Content="{TemplateBinding SelectionBoxItem}"
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
Margin="0,0,0,0" Focusable="True"
/>
</ControlTemplate>
<Style TargetType="{x:Type ComboBox}" x:Key="DropDown">
<Setter Property="OverridesDefaultStyle" Value="False" />
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="False" />
<Condition Property="IsFocused" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="Template" Value="{StaticResource FlatCombo}" />
</MultiTrigger>
</Style.Triggers>
</Style>
<ComboBox IsSynchronizedWithCurrentItem="True" x:Name="ComboBoxMinute" Width="Auto"
Height="Auto" HorizontalAlignment="Center"
Background="{Binding Path=Background, ElementName=TextBlockDate, Mode=Default}"
BorderBrush="{x:Null}" FontFamily="{Binding Path=FontFamily,
ElementName=TextBlockDate, Mode=Default}"
FontSize="{Binding Path=FontSize, ElementName=TextBlockDate, Mode=Default}"
Foreground="{Binding Path=Foreground, ElementName=TextBlockDate, Mode=Default}"
Padding="0,0,0,0" MaxDropDownHeight="200" Style="{StaticResource DropDown}" VerticalContentAlignment="Stretch"
VerticalAlignment="Center" FocusVisualStyle="{DynamicResource MyFocusVisual}"/>