#.net #wpf #controls #z-index
#.net #wpf #элементы управления #z-индекс
Вопрос:
У меня есть главное окно, которое состоит из нескольких пользовательских элементов управления.как показано ниже
<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>
Теперь проблема в том, что этот список занимает место, когда он виден в окне. Я хочу показать это поле списка для отображения поверх всех элементов управления, включая другие пользовательские элементы управления, которые находятся в главном окне.
Как показать, что этот список перекрывает другие элементы управления.Пожалуйста, предложите решения, я попробовал z-index в listbox, но не сработал.
Комментарии:
1. Вы хотите, чтобы он всплывал при необходимости? Сделайте это отдельным окном.
2. Нет ли решения для этого в том же usercontrol? я выполнил все кодирование в той же viewmodel.
3. Вы могли бы поместить список во всплывающее окно или украсить. Или просто поверх всего остального, переместив его во внешнюю сетку окна. Переключите его видимость между свернутым и видимым.