首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF AutoCompleteBox弹出背景

WPF AutoCompleteBox弹出背景
EN

Stack Overflow用户
提问于 2013-09-10 05:05:09
回答 1查看 708关注 0票数 0

我的用户控件中有几个AutoCompleteBox。框是单独的,用白色背景显示结果,我认为这是默认的。无论出于什么原因,当我的ListBox.ItemContainerStyle中有一个AutoCompleteBox时,弹出窗口上的背景是灰色的。你知道为什么它会不同吗?

下面是白色的示例代码:

代码语言:javascript
复制
    <controls:AutoCompleteBox Grid.Row="6" x:Name="FacilityCompleteBox" TextChanged="FacilityCompleteBox_OnTextChanged" ItemsSource="{Binding}" ValueMemberPath="ListName" SelectedItem="{Binding ElementName=patientVisitControl, Path=ClaimViewModel.SelectedFacility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                  LostFocus="CompleteBox_OnLostFocus" Text="{Binding ElementName=patientVisitControl, Path=ClaimViewModel.Visit.Facility.Facility.ListName}">
           <controls:AutoCompleteBox.ItemTemplate>
              <DataTemplate>
                 <TextBlock Text="{Binding Path=ListName}" />
              </DataTemplate>
           </controls:AutoCompleteBox.ItemTemplate>
        </controls:AutoCompleteBox>

这是我的列表框,在弹出窗口上有一个灰色的背景:

代码语言:javascript
复制
    <ListBox x:Name="Resources" Grid.Row="8" ItemsSource="{Binding Path=ClaimViewModel.Claim.PatientVisitResources}" BorderBrush="Transparent" Background="White">
           <ListBox.Resources>
              <Style TargetType="ListBox">
                 <Setter Property="Template">
                    <Setter.Value>
                       <ControlTemplate TargetType="ListBox">
                          <ItemsPresenter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
                       </ControlTemplate>
                    </Setter.Value>
                 </Setter>
              </Style>
           </ListBox.Resources>
           <ListBox.ItemContainerStyle>
              <Style TargetType="ListBoxItem">
                 <Setter Property="Template">
                    <Setter.Value>
                       <ControlTemplate TargetType="ListBoxItem">
                          <!--<claimOverlay:PopupFilterControl x:Name="ResourceSearchFilter" SearchControlViewModel="{Binding}" ClaimOverlayWindow="{Binding ElementName=patientVisitControl, Path=ClaimOverlayWindow}" Height="30" MaxHeight="30" 
                                                           DeleteResource="ResourceSearchFilter_OnDeleteResource" SelectCard="Default_OnSelectCard" />-->
                          <controls:AutoCompleteBox x:Name="ResourceCompleteBox" TextChanged="ResourceCompleteBox_OnTextChanged" ItemsSource="{Binding}" ValueMemberPath="ListName" 
                                                    LostFocus="CompleteBox_OnLostFocus" Text="{Binding Path=ListName}">
                             <controls:AutoCompleteBox.ItemTemplate>
                                <DataTemplate>
                                   <TextBlock Text="{Binding Path=ListName}" />
                                </DataTemplate>
                             </controls:AutoCompleteBox.ItemTemplate>
                          </controls:AutoCompleteBox>
                       </ControlTemplate>
                    </Setter.Value>
                 </Setter>
              </Style>
           </ListBox.ItemContainerStyle>
        </ListBox>

在我的用户控件中没有任何其他的ListBox样式。

EN

回答 1

Stack Overflow用户

发布于 2013-09-10 21:54:45

所以我假设在ListBox中的某个地方有一种样式使它变成灰色,所以我使用AutoCompleteBoxes ItemContainerStyle属性创建了以下样式:

代码语言:javascript
复制
    <Style x:Key="ListBoxItemContainerStyle" TargetType="ListBoxItem">
     <Setter Property="Background" Value="White" />
     <Setter Property="BorderBrush" Value="Transparent" />
     <Setter Property="BorderThickness" Value="0" />
     <Setter Property="HorizontalAlignment" Value="Stretch" />
  </Style>

此样式现在将我的列表框弹出背景更改回白色,以匹配我控件中的其他AutoCompleteBoxes。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18707026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档