我无法让“自动隐藏”停靠栏以编程方式出现。
在网上找不到任何答案,尽管下面的SO Question建议.Show()
应该可以解决问题
我已经在最新的NuGet 版本的代码上尝试过这个。
我的测试代码如下。
有人知道该怎么做吗?或者我做错了什么?
更新:显然这是 2.7.0 中的一个错误,我已经为该项目打开了一个问题。@roken 的回答是一个很好的解决方法,所以我更新了下面的代码以反映它。
我的测试代码
创建一个简单的 Visual Studio Windows 窗体应用程序,并将主窗体的源文件内容替换为以下代码:
using System;
using System.Windows.Forms;
using dps = WeifenLuo.WinFormsUI.Docking;
namespace testDockPanel
{
public partial class Form1 : Form
{
private dps.DockPanel dockPanel;
private dps.DockContent dc;
private Control innerCtrl;
public Form1()
{
InitializeComponent();
dockPanel = new dps.DockPanel();
dockPanel.Dock = DockStyle.Fill;
dockPanel.DocumentStyle = dps.DocumentStyle.DockingWindow;
toolStripContainer1.ContentPanel.Controls.Add(dockPanel);
dc = new dps.DockContent();
dc.DockPanel = dockPanel;
dc.DockState = dps.DockState.DockRightAutoHide;
innerCtrl = new WebBrowser() { Dock = DockStyle.Fill };
dc.Controls.Add( innerCtrl );
这是代码中不起作用的部分:
// This SHOULD show the autohide-dock, but NOTHING happens.
dc.Show();
我已经用@roken 的建议替换了它,现在它可以工作了:
dockPanel.ActiveAutoHideContent = dc;
innerCtrl.Focus(); // This is required otherwise it will autohide quickly.
}
}
}