问题标签 [dockpanel-suite]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dockpanel-suite - DockPanelSuite LoadFromXML 不起作用?
Loadfromxml 似乎不起作用。它读取 XML 文件,然后分支到返回要加载的表单的函数,该函数返回表单,但它从不加载表单。他们从不出现。任何想法我做错了什么?下面的代码片段
.net - DockPanel Suite 选项卡排序
我的一个项目使用 WeiFen Luo 的 DockPanel Suite http://dockpanelsuite.com/。现在,客户要求在文档视图中按给定顺序对选项卡进行排序。
这些选项卡都是同一个 DockContent 派生类的实例。它带有一个用于排序的浮点数。
DockPanel.Contents 是一个 DockContentCollection,遗憾的是它不像其他集合那样提供 Sort 方法。也无法从中删除 DockContents 以便以正确的顺序添加它们。
但是用户可以将一个选项卡拖放到另一个选项卡上以更改其顺序。
有谁知道如何以编程方式“将 tab1 插入 tab2 的位置”?
我知道我应该在依赖图书馆的论坛上提问,那里的“如何提问”条目会导致这里。
c# - 使用 DockPanel Suite 设置垂直停靠优先于水平停靠
我正在使用DockPanel Suite,但由于文档相对稀疏,我遇到了问题。
我有两个停靠面板:一个停靠在左侧和右侧,称为“Side”,另一个停靠在底部,称为“Bottom”。我希望 Side 填充表格的高度,Bottom 填充其余部分。
所以我的目标是:
但我所拥有的是:
当我运行程序时,我得到了第二个变体,如果我将 Bottom 拖出使其浮动,然后将其拖回,它将按照我想要的方式停靠,但我无法以编程方式实现这一点。
这是我的代码:
我试过改变顺序,但没有效果。我尝试过各种属性和方法,但没有太多文档,因此 IntelliSense 在这里没有太大帮助。
更新
我已经尝试按照两个人的建议将侧面板放在前面和/或将底部面板放在后面,但这没有效果。这是完整的代码:
用户 Lex Li 提出了另一个建议,即首先创建一个文档,然后停靠在该文档的底部。这似乎有效,除了现在底部窗口中没有,如下所示:
这是我用来创建它的代码:
我可以通过将主停靠面板的DocumentStyle
属性设置为DockingMdi
or来避免这种情况DockingWindow
,这给了我这个:
但是那些标签在那里,我不想要;我更喜欢使用DockingSdi
风格。
所以,我正在尝试以编程方式实现停靠到最底部,如下所示:显示停靠点的位置......
最后,停靠的窗口
vb.net - WeifenLuo DockPanel Suite 表单在关闭时冻结
最近我决定在我的 VB.NET 应用程序中实现 WeifenLuo DockPanel Suite。一切正常,直到您尝试关闭应用程序,然后它会冻结。什么都没发生。
我试过了:
- 关闭前处理 DockPanel
- 使用 Application.Exit()
- RunningApplication.DoEvents() 关闭前
- 在关闭之前关闭任何打开的 DockPanel 表单。
- 在 Visual Studio 调试器之外运行应用程序。
- 将 Visual Studio 设置为针对 x86 而不是 AnyCPU
- 升级/下载 DockPanel Suite 框架版本
然而仍然没有,仍然只是冻结。
输出显示以下消息:
每次线程名称都不同。但是我没有任何线程在运行。
这只发生在带有 DockPanel 的表单上。
有什么想法吗?我在网上找不到其他人有这个问题,这真的很令人沮丧。
谢谢。
c# - 在 DockPanel Suite 中添加可滚动面板
我正在尝试使用 WeiFen Luo Dock Panel Suite (DPS) 向面板添加滚动条。我创建了我的表单并且布局是我想要的,但是我的一个表单大于我为一组面板分配的区域。面板上的滚动条似乎是最合乎逻辑的选项,但我无法为表单启用它们。
我尝试将 AutoScroll 设置为 True,但这并没有改变。然后我添加了一个最小尺寸约束,但这会导致面板显示在其他面板后面和其他停靠不稳定性。这是一个错误,还是我以错误的方式解决这个问题?
c# - WeifenLuo DockPanelSuite 打开新文档失败,对象引用未设置为对象实例
下面的代码中抛出了一个非常令人沮丧的错误:
错误:堆栈跟踪
在 WeifenLuo.WinFormsUI.Docking.DockPanel.FocusManagerImpl.SuspendFocusTracking() 在 WeifenLuo.WinFormsUI.Docking.DockContentHandler.Show(DockPanel dockPanel, DockState dockState) 在 WeifenLuo.WinFormsUI. Docking.DockContent.Show(DockPanel dockPanel, DockState dockState) at Imogen.frmMain.ProcessUnReported(EUReported eur) 在 C:\Users\Dave\Documents\Visual Studio 2015\Projects\Imogen\Imogen\frmMain.cs:line 244
错误信息:
你调用的对象是空的。
如您所见,我所做的只是创建一个新表单并尝试显示它。一切都说它一直在工作,直到 .Show(dockPanel, DockState.Document) Form 和 dockPanel 存在并且有句柄,所以我不知道发生了什么。
有任何想法吗?
dockpanel-suite - 在 DockPanelSuite 中保存和恢复特定于窗格的信息
所以我查看了现有的用dockpanel-suite标记的答案,但没有找到我要找的东西(当我输入这个时,它也没有出现在类似问题区域中)。 对于初学者,请注意我不是在询问保存和恢复整个工作区。
所以这里是场景。我有一个根据用户请求添加的图形窗口(我们将其称为“时间轴”)。添加后,它会自动停靠在主窗体的最底部区域。然后,用户将时间轴窗口重新停靠在其他地方(可以停靠到边缘或另一个停靠窗格中)并更改其停靠行为(浮动、自动隐藏、选项卡等)。
Visual Studio 中有一个可演示的示例。如果您在右侧停靠窗格中的选项卡上有解决方案资源管理器并关闭解决方案资源管理器,您可以转到查看 -> 解决方案资源管理器并再次将其恢复,它会恢复到正确的位置。
现在用户通过点击其窗格上的[x]完全关闭时间轴窗口,并且在将来,他们请求再次将其添加到应用程序中。我想把它带回到最后一个停靠状态,并定位它上次关闭时的位置。
现在,我似乎能够通过ContentRemoved
事件捕捉到窗格的关闭,但是在那里e.Content.DockHandler.Pane,
e.Content.DockHandler.PanelPane
并且e.Content.DockHandler.FloatPane
都是null
这样,所以我没有明显的方法来获取以前的停靠几何。 e.Content.DockHandler.DockPanel
是有效的,但它是父/根对接面板,调用SaveAsXml(...)
对我没有任何作用,因为它会获得整个工作区。
即使我能够在这里捕捉到它,我需要的信息。但是,我似乎也无法简单地调用LoadFromXml(...)
任何东西。
DockContent
如果我在将对象添加到之前尝试这样做,则DockPanel
成员DockHandler.DockPanel
为空,所以我似乎没有地方可以将 XML 恢复到,即使我能够得到它。
似乎没有其他活动DockPanel
可以帮助我。
那么-有没有办法做到这一点,正确的方法是什么?我想确保我不会在关闭时尝试将停靠信息捕获为 XML 并在稍后恢复它时发出错误的树。
我曾考虑过不实际关闭窗口而只是取消停靠并隐藏它的想法,但还没有探索那么远。与挂钩DockChanged
事件相同,但它似乎不会在DockContent
停靠/浮动/等的对象上触发。我不知道为什么。
此外,该解决方案需要足够强大,以便我可以正确处理诸如最后一个停靠父级不再存在的情况。例如,如果它作为选项卡停靠在某处,但现在该父窗口(包含选项卡)也已关闭。我不知道LoadFromXml,
假设它是否是正确的方法,是否足够强大以处理这种情况,因为我还没有能够测试它。