我正在使用WPF Toolkit中的AutoCompleteBox控件。
如何在项目下拉列表中设置与文本框不同的背景和前景?
下面的XAML对下拉菜单中的项目文本块应用了不同的样式,但是使用自动填充文本框的背景颜色将背景留在下拉项目后面。基本上我希望自动完成文本框具有深色背景,并且下拉列表具有白色背景。
<Style x:Key="SearchBox2" TargetType="wpftoolkit:AutoCompleteBox" >
<Setter Property="Background" Value="#3B4044"></Setter>
<Setter Property="Foreground" Value="#FFFFFF"></Setter>
<Setter Property="BorderBrush" Value="#000000"></Setter>
<Setter Property="BorderThickness" Value="1"></Setter>
<Setter Property="Height" Value="25"></Setter>
</Style>
<wpftoolkit:AutoCompleteBox
x:Name="SearchBox"
Grid.Column="0" Grid.Row="0"
ValueMemberPath="SearchDesc"
FilterMode="Contains"
IsTextCompletionEnabled="True"
Text="Search for an app..."
Style="{StaticResource SearchBox2}" >
<wpftoolkit:AutoCompleteBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding LongDesc}" Foreground="#16509A" Background="White" />
</StackPanel>
</DataTemplate>
</wpftoolkit:AutoCompleteBox.ItemTemplate>
</wpftoolkit:AutoCompleteBox>
答案 0 :(得分:1)
不使用ItemTemplate
,而是使用ItemContainerStyle
。请在下面找到代码修复程序,让我知道这是否适合您。
请尝试以下代码:
<wpftoolkit:AutoCompleteBox
x:Name="SearchBox"
Grid.Column="0" Grid.Row="0"
FilterMode="Contains"
IsTextCompletionEnabled="True"
Text="Search for an app...">
<wpftoolkit:AutoCompleteBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Background" Value="White"/>
<Setter Property="Foreground" Value="#16509A"/>
</Style>
</wpftoolkit:AutoCompleteBox.ItemContainerStyle>
</wpftoolkit:AutoCompleteBox>