gpt4 book ai didi

wpf - Avalon Dock 自动隐藏加载问题

转载 作者:行者123 更新时间:2023-12-03 03:46:23 27 4
gpt4 key购买 nike

我在使用 Avalon Docking 时遇到问题,我的第二个面板停靠在底部并设置为“自动隐藏”。当 UI 运行时, Pane 默认加载为“停靠/可见”。我想将其隐藏/最小化。

<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>

我尝试过 Avalon 论坛上建议的各种“黑客”,您可以在其中使用 OnLoad

outputDockablePane.ToggleAutoHide();

这有效,这意味着,当加载 UI 时, Pane 将被隐藏。但是,一旦您在 .cs 代码中切换自动隐藏,在运行时单击停靠标题以使 Pane 可见/ float 就会停止工作。所以你必须连接 DockingMananger.OnMouseUp() 并解析几个 bool 状态并手动调用 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();
}
}

是否有我完全缺少的设置/属性,或/和更好的方法?

最佳答案

4 年了 Avalon Docking 仍然存在同样的问题。虽然我还没有找到合适的解决方案,但我已尝试完善您的解决方法逻辑。

private void OnDockingManagerMouseUp(object sender, MouseButtonEventArgs e)
{
if (outputDockableContent.IsAutoHidden)
{
outputDockableContent.IsActive = false;
}
}

关于wpf - Avalon Dock 自动隐藏加载问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10130050/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com