【问题标题】:WPF Stackpanel overlaps other elementsWPF Stackpanel 与其他元素重叠
【发布时间】:2016-07-30 06:40:42
【问题描述】:

基本上就是标题所说的。堆栈面板与菜单重叠,我不知道为什么。这是 XAML。

    <Grid>
        <Menu x:Name="menu" HorizontalAlignment="Left" Height="25" VerticalAlignment="Top" Width="592"/>
        <StackPanel x:Name="LOCATIONS" HorizontalAlignment="Left" Margin="0,25,0,0" VerticalAlignment="Top" Height="294"  Width="200" Background="LightGray"/>

    </Grid>
</Window>

Program

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    之所以会这样,是因为Grid是一个容器。如果将元素添加为子元素,它们将相互重叠,最后一个子元素始终位于顶部。

    您需要做的是在您的Grid 中使用Rows,以便每个子元素都有自己的专用区域。

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Menu x:Name="menu" Grid.Row="0" Height="25" />
        <StackPanel x:Name="LOCATIONS" Grid.Row="1" HorizontalAlignment="Left" Width="200" Background="LightGray"/>
    </Grid>
    

    以上代码允许您删除不必要的HeightsAlignments

    您也可以使用DockPanel 来达到相同的效果。

    <DockPanel LastChildFill="True">
        <Menu x:Name="menu" DockPanel.Dock="Top" Height="25" />
        <StackPanel x:Name="LOCATIONS" HorizontalAlignment="Left" Width="200" Background="LightGray"/>
    </DockPanel>
    

    【讨论】:

      【解决方案2】:

      您需要为 Grid 定义行或列。

      我建议您阅读本教程: http://www.wpftutorial.net/gridlayout.html

      【讨论】:

        【解决方案3】:

        您同时使用 2 个元素填充网格。相反,您应该在网格中定义两行。一行高度为 20 像素,第二行填充其余部分。

        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="20"/>
                <RowDefinition Height="100*/>
            </Grid.RowDefinitions>
            <Menu x:Name="menu" Grid.Row="0"/>
            <StackPanel x:Name="LOCATIONS" Grid.Row="1" Background="LightGray"/>
        </Grid>
        

        这应该可以解决您的问题。

        【讨论】:

          【解决方案4】:

          在 Grid 中,最高的 z-index 应用于最后应用的元素,所以在这里,当您在 menu 之后声明 stackpanel 时,它的 z-index 比 Menu 的 z-index 多 1 蜜蜂给出的 z-index 为 0,所以更好地使用 Grid.Row 或 Panel.Z-index 更多..

          【讨论】:

            猜你喜欢
            • 2017-03-16
            • 2020-03-02
            • 1970-01-01
            • 1970-01-01
            • 2018-05-07
            • 2012-08-06
            • 1970-01-01
            • 2021-03-18
            • 2013-10-19
            相关资源
            最近更新 更多