zIndex на ComboBox в WPF? - PullRequest
       12

zIndex на ComboBox в WPF?

0 голосов
/ 24 сентября 2018

Мне нужно иметь три поля со списком в одной ячейке сетки данных, например:

<Grid Name="gridFormat_1" Grid.Row="1" Grid.Column="6" Margin="0, 5, 5, 5" >
    <Grid.RowDefinitions>
        <RowDefinition/>
    </Grid.RowDefinitions>

    <ComboBox Grid.Row="0" Name="monthsCB" DisplayMemberPath="MonthName" IsEnabled="False" Opacity="0" />
    <ComboBox Grid.Row="0" Name="quartalsCB" DisplayMemberPath="QuartalNumber" IsEnabled="False" Opacity="0" />
    <ComboBox Grid.Row="0" Name="yearsCB" DisplayMemberPath="Year" IsEnabled="False" Opacity="0" />
</Grid>

Я хочу иметь возможность показать / скрыть определенное поле со списком в данный момент времени.Однако, хотя Opacity и IsEnabled, скрывают / показывают, отключают / включают каждое поле со списком, кроме того, который я выбрал, я не могу нажать на поля со списком ниже "yearsCB", так как он добавлен последним.

Это означает, что другие два поля со списком не получают события мыши.

Я обнаружил, что должен использовать какой-то другой тег WPF, чтобы обернуть мои поля со списком, чтобы я мог переключать ZIndex на каждом из них.

Какой тег будет тем, который позволит мне манипулировать Canvas или ZIndex?

Или есть какой-то другой лучший способ добиться этого?

1 Ответ

0 голосов
/ 24 сентября 2018

Если вам нужно установить ZIndex, вы можете сделать это с атрибутом

Panel.ZIndex="1"

Чем выше число, тем выше элемент.По умолчанию ZIndex равен 0.

В WPF вы размещаете элементы внутри их родителя - в этом случае родителем является Grid. Класс сетки является производным от Класс Panel , и Panel имеет Присоединенное свойство ZIndex .

Если вы хотите переключаться между 3 комбинированными списками в одной позиции, выследует изменить их видимость.Непрозрачность изменяет только визуальное состояние и IsEnabled устанавливает, если элемент включен в пользовательском интерфейсе.

Для скрытого выпадающего списка:

Visibility="Hidden"

Для видимого выпадающего списка:

Visibility="Visible"
...