代码之家  ›  专栏  ›  技术社区  ›  Samvel Siradeghyan

“银光”组合框中如何保持下拉菜单打开?

  •  1
  • Samvel Siradeghyan  · 技术社区  · 15 年前

    我使用组合框控件作为弹出窗口。我的组合框项是网格。网格中有TreeView控件和两个按钮。TreeView的项是复选框。
    当我单击按钮或复选框下拉框时,它会保持打开状态,但当我单击网格下拉框的其他部分时,它会关闭。
    在我单击组合框外部之前,是否有任何方法保持它打开?
    我在谷歌查了很多东西,但什么都没找到。

    <UserControl.Resources>        
        <common:HierarchicalDataTemplate x:Key="HierarchicalDataTemplate_AddDivision"  ItemsSource="{Binding DivisionIDs}">
            <StackPanel Orientation="Horizontal">
                <CheckBox IsChecked="{Binding IsChecked, Mode=TwoWay}" Click="CheckBox_Click" />
                <TextBlock Text="{Binding ToDisplay}"/>
            </StackPanel>
        </common:HierarchicalDataTemplate>
    </UserControl.Resources>
    <Grid x:Name="LayoutRoot" Background="White">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="0.5*"/>
            <ColumnDefinition Width="0.5*"/>
        </Grid.ColumnDefinitions>
    
        <Grid.RowDefinitions>
            <RowDefinition Height="0.90*"/>
            <RowDefinition Height="0.10*"/>
        </Grid.RowDefinitions>
        <controls:TreeView Height="250" x:Name="itemsToShow" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="230" 
                           Grid.ColumnSpan="2"  ItemTemplate="{StaticResource HierarchicalDataTemplate_AddDivision}" SelectedItemChanged="itemsToShow_SelectedItemChanged" />
        <Button Margin="28,0,22,5" Content="Ok" Grid.Row="1" d:LayoutOverrides="Height" Click="OkButton_Click"/>
        <Button Margin="23,0,27,5" Content="Cancel" Grid.Column="1" Grid.Row="1" d:LayoutOverrides="Height" Click="CancelButton_Click"/>  
    </Grid>   
    

    这是ComboBox

    <ComboBox Grid.Row="1" Width="100" Height="20" HorizontalAlignment="Left" VerticalAlignment="Top"  >
       <ComboBox.ItemTemplate>
          <DataTemplate>
           <my1:ShowDivisions x:Name="ShowDivs" Loaded="ShowDivs_Loaded" ParentComboBox="{Binding ElementName=addStr2}"/>                                            
          </DataTemplate>
      </ComboBox.ItemTemplate>
    </ComboBox>
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   iCollect.it Ltd    15 年前

    听起来你的按钮没有填满组合框下拉部分的所有空间。

    在这种情况下,您只需要在按钮后面有一个可点击的对象 任何杂散的鼠标单击:

    尝试将背景设置为透明的矩形(不只是具有0 alpha值的颜色,因为它不可单击)。

    (确保矩形也设置了IsHittestVisible)。

    推荐文章