2013-05-28 20 views
1

我正在使用WPF工具包中的AutoCompleteBox控件。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> 

回答

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> 
相關問題