我有一个内容组合框的边框,现在我想在ComboBox获得焦点时更改边框的背景!
我尝试过这段代码,但它不起作用:(
<Border CornerRadius="4" Margin="6,2,2,2" >
<StackPanel Orientation="Horizontal" x:Name="Tester">
<Label Content=" Signature :" Margin="10,0,0,0" FontFamily="Times New Roman" FontWeight="Normal" FontSize="14" ToolTip="You can join a file text containing your query with simple drag and drop of file here"/>
<ComboBox x:Name="Signatures" Margin="2,4,4,4" IsSynchronizedWithCurrentItem="False" FontWeight="Normal" FontFamily="Times New Roman" Width="180" IsTextSearchEnabled="True" IsEditable="True" FontSize="14" MouseDoubleClick="Signatures_MouseDoubleClick" MouseLeftButtonDown="Signatures_MouseDoubleClick" >
<ComboBoxItem Content="Serializable" HorizontalAlignment="Left" FontWeight="Normal" />
<ComboBoxItem Content="Comparable" HorizontalAlignment="Left"/>
<ComboBoxItem Content="CharSequence" HorizontalAlignment="Left"/>
<ComboBoxItem Content="Number" HorizontalAlignment="Left"/>
<ComboBoxItem Content="String" HorizontalAlignment="Left"/>
<ComboBoxItem Content="long" HorizontalAlignment="Left"/>
<ComboBoxItem Content="short" HorizontalAlignment="Left"/>
<ComboBoxItem Content="integer" HorizontalAlignment="Left"/>
<ComboBoxItem Content="double" HorizontalAlignment="Left"/>
<ComboBoxItem Content="float" HorizontalAlignment="Left"/>
<ComboBoxItem Content="byte" HorizontalAlignment="Left"/>
<ComboBoxItem Content="boolean" HorizontalAlignment="Left"/>
<ComboBoxItem Content="void" HorizontalAlignment="Left"/>
</ComboBox>
</StackPanel>
<Border.Style>
<Style TargetType="Border">
<Setter Property="Background" Value="{x:Null}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=Signatures, Path=IsFocused}" Value="True">
<Setter Property="Background" Value="BurlyWood"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
你能帮帮我吗?
答案 0 :(得分:2)
问题在于焦点不完全在你的ComboBox
上,而是在子元素上,而AFAIK WPF无法告诉你焦点是否在一个元素内。
所以你应该添加更多DataTrigger
s:
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=Signatures,Path=IsFocused}" Value="True">
<Setter Property="Background" Value="BurlyWood"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=Signatures,Path=IsSelectionBoxHighlighted}" Value="True">
<Setter Property="Background" Value="BurlyWood"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=Signatures,Path=IsDropDownOpen}" Value="True">
<Setter Property="Background" Value="BurlyWood"/>
</DataTrigger>