【问题标题】:ZIndex within a DockPanelDockPanel 中的 ZIndex
【发布时间】:2011-07-22 04:23:51
【问题描述】:

我有一个 DockPanel 作为我的窗口的根元素。

我有另一个 DockPanel,它本质上是一个菜单栏,设置为停靠在根元素 DockPanel 的顶部。

我希望将图像停靠在浮动在菜单栏 DockPanel 上方的根元素 DockPanel 的顶部。

例如:

<DockPanel x:Name="RootDockPanel">
  <Image Souce="/MyProject;component/Images/imageName.jpg" DockPanel.Dock="Top" Panel.ZIndex="3" />
  <DockPanel x:Name="MenuDockPanel" DockPanel.Dock="Top" Panel.ZIndex="0">
    <!-- content -->
  </DockPanel>
</DockPanel>

我尝试将图像的 Panel.ZIndex 设置为高于 menu-bar-DockPanel 的 Panel.ZIndex 的值,但这不起作用。

由于 ZIndex 被证明是无用的,我不确定如何完成此操作,我正在寻找您的意见。

感谢您的帮助!

-弗林尼

【问题讨论】:

    标签: .net wpf xaml dockpanel


    【解决方案1】:

    我建议直接放弃 DockPanel 控件并改用 Grid。根据我的经验,DockPanel 是一个设计不佳的控件,是 WPF 中所有面板控件中最没用的。

    【讨论】:

    • 当我最初问这个问题时,我非常讨厌这个答案;我发现放弃 DockPanel 并改用 Grid 解决了这个问题,并且从那以后一直是我的方法。所以是的,它没有回答我关于如何修复 DockPanel 的问题;但它确实对我有帮助。
    【解决方案2】:

    DockPanel.ZIndex 为我工作。

    这是一个帮助示例(它可能无法编译,我只是凭记忆写的,以说明概念):

    <DockPanel>
        <Label 
            Background="Yellow" 
            Content="Foo" 
            DockPanel.Dock="Right" 
            DockPanel.ZIndex="1"
            />
        <Label 
            Background="Green" 
            Content="Bar" 
            DockPanel.Dock="Right" 
            DockPanel.ZIndex="0" 
            />
    </DockPanel>
    

    【讨论】:

      猜你喜欢
      • 2016-11-17
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多