如何使基础设施码头管理器覆盖其他控件?
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常用的布局管理器都有哪些,简述各布局管理器的布局特点