如何使基础设施码头管理器覆盖其他控件?

Posted

技术标签:

【中文标题】如何使基础设施码头管理器覆盖其他控件?【英文标题】:how to make infragetics dock manager overlay other controls? 【发布时间】:2015-06-18 16:37:41 【问题描述】:

我正在使用 Infragistics WPF 控件的停靠管理器。我只有一个标签,它位于窗口的底部。我在窗口上有其他控件。当用户将鼠标悬停在窗口底部的选项卡上时,它会打开(弹出)窗口中的其他控件。但它只会打开(高度方面),直到上层控件允许它打开。我想在 Visual Studio 中构建类似于可停靠选项卡的东西(解决方案资源管理器、错误列表)。你知道覆盖在我在主窗口中的任何控件之上,但它不起作用。有任何想法吗?

顺便说一句,我是 WPF 的新手。所以我猜它与我使用的布局控件有关,它可能非常简单。

代码如下:

<DockPanel VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
        <c:RibbonWindow DockPanel.Dock="Top"></c:RibbonWindow> 
        <c:MessagePane DockPanel.Dock="Bottom"></c:MessagePane>

功能区窗口是用户控件,包括一个堆栈面板,包含功能区控件和其他控件

这是名为 MessagePane 的内容用户控件:

<UserControl x:Class="LanguageLearningInstitute.Windows.MessagePane"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                 mc:Ignorable="d" 
                 d:DesignHeight="300" d:DesignWidth="300"
                 xmlns:igDP="http://infragistics.com/DataPresenter"
                 xmlns:igDock="http://infragistics.com/DockManager"
                 >
<Grid>
    <igDock:XamDockManager Name="dm">
        <igDock:XamDockManager.Panes>
            <igDock:SplitPane igDock:XamDockManager.InitialLocation="DockedBottom">
                <igDock:ContentPane x:Name="MessageList" Header="Error List" AllowClose="False" MinHeight="150" FlowDirection="RightToLeft" IsPinned="False">
                    <igDP:XamDataGrid Grid.Row="1" x:Name="dgv">
                         <igDP:XamDataGrid.FieldLayoutSettings>
                              <igDP:FieldLayoutSettings AllowDelete="False" AddNewRecordLocation="OnTopFixed" AllowAddNew="False"/>
                        </igDP:XamDataGrid.FieldLayoutSettings>
                    </igDP:XamDataGrid>
                </igDock:ContentPane>
            </igDock:SplitPane>
        </igDock:XamDockManager.Panes>
    </igDock:XamDockManager>
</Grid>

【问题讨论】:

看看双子座github.com/tgjones/gemini. 我查过了。我在一个项目的中间。我不能改变那个。我研究了解决方案,但找不到他们是如何解决问题的 【参考方案1】:

我找到了答案,我把它放在这里以防万一有人遇到同样的问题。在定义窗格之后,我在停靠管理器控件中添加了功能区用户控件。

<igDock:XamDockManager Name="dm">
        <igDock:XamDockManager.Panes>
            <igDock:SplitPane igDock:XamDockManager.InitialLocation="DockedBottom">
                <igDock:ContentPane x:Name="MessageList" Header="Error List" AllowClose="False" MinHeight="150" FlowDirection="RightToLeft" IsPinned="False">
                    <igDP:XamDataGrid Grid.Row="1" x:Name="dgv">
                         <igDP:XamDataGrid.FieldLayoutSettings>
                              <igDP:FieldLayoutSettings AllowDelete="False" AddNewRecordLocation="OnTopFixed" AllowAddNew="False"/>
                        </igDP:XamDataGrid.FieldLayoutSettings>
                    </igDP:XamDataGrid>
                </igDock:ContentPane>
            </igDock:SplitPane>
        </igDock:XamDockManager.Panes>
         <c:RibbonWindow></c:RibbonWindow>
    </igDock:XamDockManager>

【讨论】:

以上是关于如何使基础设施码头管理器覆盖其他控件?的主要内容,如果未能解决你的问题,请参考以下文章

Android开发基础之布局管理器RelativeLayout

android常用的布局管理器都有哪些,简述各布局管理器的布局特点

洋码头消息总线架构

如何使组件在表单设计器中消失?

Python Qt GUI设计:窗口布局管理方法(基础篇—4)

如何从Windows资源管理器中打开文件并将其加载到RTF控件中?