Не могу установить Canvas ZIndex в WPF - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть код xaml, подобный этому: enter image description here

Теперь я изменяю Height из wp_2 на 450, и он будет больше, чем stackMain, я установилCanvas.ZIndex="100" для того, чтобы wp_2 мог отобразить все, но он все еще скрывал деталь через stackPanel: enter image description here Кто-нибудь знает, как это исправить?Спасибо всем!

Ответы [ 3 ]

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

Для сценария, который вы упомянули, использование Grid является лучшим решением.Пожалуйста, обратитесь к нижеследующему коду:

<Grid Background="Black">
        <Grid.RowDefinitions>
            <RowDefinition Height="50"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <WrapPanel Name="Wp1" Background="Red"/>
        <WrapPanel Grid.Row="1" Name="Wp2" Background="Yellow" Height="500"/>

EDITED

Если вы хотите еще один слой для вашей WrapPanel, чем вы можете обернуть его внутри Canvas.

 <Grid x:Name="mainGrid" Background="Black">
                <Grid.RowDefinitions>
                    <RowDefinition Height="50"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <WrapPanel Name="Wp1" Background="Red"/>
                <Canvas  Grid.Row="1" Panel.ZIndex="100" Height="500" Width="{Binding ActualWidth, ElementName=mainGrid}">
                    <WrapPanel Name="Wp2" Background="Yellow" Height="400" Width="{Binding ActualWidth, ElementName=mainGrid}"/>
                </Canvas>
</Grid>
0 голосов
/ 11 сентября 2018

Может быть, вы можете сделать что-то подобное?

<Grid Background="Aquamarine" Margin="0 0 0 -270">
        <Grid Background="Black" Margin="0 10 0 313">
            <StackPanel Margin="0 0 0 -500">
                <WrapPanel Background="Red" Height="50"/>
                <WrapPanel Background="Yellow" Height="450"/>
            </StackPanel>
        </Grid>
    </Grid>
0 голосов
/ 11 сентября 2018

1.Дать поле -50 top, чтобы оно начиналось сверху (повторная инициализация сверху).

2. В панели переноса каждый дочерний элемент управления начинается с конечной позиции своего старшего.

(В этом случае желтый начинается с окончания красного.) Дайте Margin = "0, -50,0,0" желтому

<WrapPanel Background="Yellow" Height="50" Margin="0,-50,0,0" ></WrapPanel>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...