4
我遇到Avalon Docking问题,我的第二个面板停靠在底部并设置为AutoHide。 默认情况下,UI将窗格加载为停靠/可见。我想将它隐藏/最小化。Avalon Dock Auto加载时隐藏问题
<ad:DockingManager>
<ad:ResizingPanel Orientation="Vertical">
<ad:DocumentPane>
<ad:DocumentContent>
<... data grid that fills the view>
</ad:DocumentContent>
<ad:DocumentPane>
<ad:DockablePane>
<ad:DockableContent Title="output" DockableStyle="AutoHide" IsCloseable="False">
<...some control>
我已经尝试了各种“黑客”在阿瓦隆论坛,在那里的OnLoad,您可以
outputDockablePane.ToggleAutoHide();
和工作,这意味着,当UI加载面板是隐藏的建议。但是,一旦切换自动隐藏在.cs代码中,请在运行时单击停靠栏标题以使窗格可见/停止工作。所以你必须连接DockingMananger.OnMouseUp()并通过几个布尔状态进行解析,然后手动调用ToggleAutoHide() - 我只是猜测时间。对我来说似乎是一种黑客。
下面是我在做什么,现在,直到我找到一个妥善的和干净的解决方案:
private void OnDockManagerLoaded(object sender, RoutedEventArgs e)
{
if(_firstTimeLoad && !_isDataGridLoaded)
{
outputDockablePane.ToggleAutoHide();
_forcedToAutoHide = true;
}
}
private void OnDockingManagerMouseUp(object sender, MouseButtonEventArgs e)
{
if (_forcedToAutoHide)
{
_forcedToAutoHide = false;
outputDockableContent.Activate();
outputDockablePane.ToggleAutoHide();
}
}
是否有设置/属性,我完全缺失,和/或更好的办法?