Как показать элемент управления сверх всех элементов управления wpf - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть главное окно, содержащее несколько пользовательских элементов управления. Как показано ниже

<Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="*" />
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <StackPanel Grid.Row="0">
                        <controls:FileControl x:Name="FileControl" />
                        <controls:FControl x:Name="FControl"/>
                    </StackPanel>
                    <controls:MessagesControl Grid.Row="1" x:Name="MessagesControl" />
                </Grid> 

Теперь внутри FControl у меня есть панель стека, которая состоит из множества элементов управления, как показано ниже, и список, который виден при наборе текста в текстовом поле, можно сказать как автозаполнение.

<Expander>
<StackPanel>
<textBox></textBox>
<ComboBox></ComboBox>
  <ListBox Panel.ZIndex="100" ItemsSource="{Binding Collection}" SelectedIndex="{Binding Path=SelectedItemIndex, Mode=TwoWay}"  Visibility="{Binding VisibiltyAttr}" HorizontalAlignment="Center" VerticalAlignment="Bottom">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding}">
                            <i:Interaction.Triggers>
                            <i:EventTrigger EventName="MouseLeftButtonUp">
                                <i:InvokeCommandAction  Command="{Binding RelativeSource={RelativeSource AncestorType=ItemsControl}, 
                                        Path=DataContext.SelectionCommand}"  CommandParameter="{Binding}"></i:InvokeCommandAction>
                            </i:EventTrigger>
                        </i:Interaction.Triggers>
                        </TextBlock>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </StackPanel>
    </Expander>

Теперь проблема в том, что этот Listbox занимает место, когда он виден в окне. Я хочу показать этот ListBox для отображения поверх всех элементов управления, включая другие элементы управления пользователя, которые находятся в главном окне. Как показать, что этот ListBox перекрывает другие элементы управления. Пожалуйста, предложите решения, я попробовал z-index в списке, но он не работал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...