问题标签 [docking]

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.

0 投票
1 回答
976 浏览

wpf - 具有 UI 自动化兼容性的 Wpf 停靠控件

我们一直在慢慢地在我们的产品上使用 Ranorex 创建 UI 自动化测试,但遇到了几个问题。

我们正在使用 Telerik Wpf 控件(TabControl、TreeView、Grid 和 Docking),到目前为止,我们只能使用 Ranorex 测试 TreeView 和 Grid。我们将 TabControl 替换为与 Ranorex 一起使用的标准 Wpf TabControl。但是 Docking 控件不起作用,当然也没有标准的开箱即用的 Wpf Docking 控件可供我们使用。

我的问题是:有人知道可以使用 UI 自动化工具(最好是 Ranorex)测试的任何 Wpf 对接控件吗?

我发现AvalonDock,起初看起来很有希望,但根据他们网站上的这个帖子,它不支持 UI 自动化 :(

为任何评论干杯,

西伊

0 投票
1 回答
3691 浏览

c++ - 将子窗口停靠到父窗口

当用户调整主窗口的大小(拖动角落)时,我需要我的 6 个控件(主窗口的子窗口)变大。我想我可以通过使用 MoveWindow 函数来更改主窗口的 WM_SIZE 或 WM_SIZING 函数中每个子项的比例来实现这一点。这样做会使 Debug 构建变得奇怪(多个窗口、退出后窗口的图像等)。发布版本运行良好,但当我调整主窗口大小时,子窗口没有改变。

我发现http://msdn.microsoft.com/en-us/library/ms632598%28v=VS.85%29.aspx#creating_enumerating_etc使用了不同的方法:通过枚举所有子窗口和枚举回调通过分配给每个孩子的唯一 ID 处理窗口大小调整的函数。在我自己尝试后,调整主窗口大小时对控件没有任何影响。

为什么这不起作用?

在主窗口 switch 语句中:

子枚举器回调函数:

0 投票
1 回答
3110 浏览

silverlight - Silverlight:隐藏 RadPaneGroup 问题

嗨,我面临一个非常奇怪的问题。

我的要求是在页面的左侧有一棵树,在页面的右侧有一个视图。单击树的各个节点会显示不同的视图。

我已经使用两个 rad 窗格组实现了这一点。现在我已经实现了所有逻辑,并且树节点隐藏或显示了所需的 RadPaneGroup,所以我走的是正确的道路。

但问题是,当页面最初加载时,会显示两个窗格组。我希望最初隐藏一个。第二个 RadPane 组可见性已折叠,但仍显示。我最初如何隐藏 rad 窗格组之一。

亲切的问候,

0 投票
4 回答
22138 浏览

wpf - 如何使 WPF ListView 不高于其内容但适合具有其他控件的窗口?

我正在尝试按如下方式安排 WPF UI:

小样

  1. 窗口顶部是一些自行决定高度的控件(有效地停靠在窗口顶部,但与它们想要的高度一样高)。
  2. 在这些控件下面是一个 ListView。ListView 可能包含可变数量的项目,每个项目的高度都不同。问题: ListView 不能比它需要的高。如果列表视图中的所有项目都可以轻松放入窗口,我希望 ListView恰好是显示其所有项目的高度(因此窗口看起来像网页的流动布局,底部有空白)。另一方面,如果所有 ListView 项目都不适合窗口,我希望整个 UI 适合窗口(好像下面的数字 3 停靠在窗口底部,并且 ListView 正在填充可用空间) . 当用户调整窗口大小和/或按下更改列表视图内容的按钮时,这一切都必须动态调整。
  3. ListView 下方是更多的自定高度控件。这些必须始终直接出现在 ListView 下方,没有间隙。特别是,如果它们可以直接放在 ListView 下方,则它们不能只停靠在窗口底部。

解决方案将非常受欢迎;我已经摆弄了一段时间,并设法通过在窗口使用外部 DockPanel 使第一个控件停靠在顶部,并且 ListView 填充剩余空间但设置为 VerticalAlignment="最佳”。

一个纯 XAML 解决方案将是理想的,但如果它是不可避免的,我不介意后面的代码。允许垂直堆叠多个此类布置的解决方案的奖励积分:) 感谢您的帮助!

0 投票
4 回答
1759 浏览

.net - VSX - 设置要停靠的 ToolWindowPanes 初始位置

我正在创建一个公开工具窗口的 Visual Studio 包,并且我试图确保在首次加载包时它显示停靠在 Visual Studio 主窗口的左边缘。

我已经尝试了上述的许多变体,但我设法实现的最好的方法是将窗口停靠在底部- 即使这样,每次重新加载包时它都会继续重新停靠,而不是坚持用户窗口位置。

如何指定我的窗格最初显示为停靠在主窗口的左侧?

0 投票
2 回答
934 浏览

c++ - 如何即时更改 CDockingManager 对接模式?

我希望能够在 MFC 客户端应用程序中的即时对接和智能对接之间切换。默认情况下DT_IMMEDIATE将设置为使停靠窗格的功能类似于 Visio。但是,当用户按住 Ctrl 键时,我想切换到DT_SMART并在他们拖动或移动停靠窗格时显示智能标记,以便他们可以看到可以停靠的各个位置,类似于 Visual Studio。

我尝试使用按键处理程序来应用它,但它不会触发。然后我求助于使用PreTranslateMessage,虽然它捕获了输入并成功设置了对接模式,但它没有按预期显示或启用智能对接。

在日志文件中,我可以看到它在设置DT_SMARTDT_IMMEDIATE按下和释放 Ctrl 键之间交替,但是只有立即对接才能按预期工作。是否需要进行一些重绘或其他调用才能使其正常工作?

0 投票
2 回答
2765 浏览

java - 如何在 Swing 中将一个窗口停靠到另一个窗口?

我有两个JFrame开放的。我在窗口 A 的右侧生成了窗口 B,紧贴在窗口 A 的右边缘。我希望它坚持并窗口 A 一起移动。我怎样才能让它做到这一点?

0 投票
1 回答
1106 浏览

c# - Dock Windows Forms(选项卡式聊天界面)

为那些说要使用标签控件的人编辑

我很想使用标签控件;但我不知道如何从主窗体链接选项卡控件。我会假设我必须做这样的事情:

  1. 创建带有空白 TabControl 的表单,没有创建页面。
  2. 创建一个 CustomuserControl(添加 -> 用户控件),上面有我的控件。
  3. 当有新的聊天进来时,创建一个选项卡控件项,选项卡控件页面,将自定义控件添加到选项卡控件页面。将选项卡控件句柄添加到哈希表中,以便当有新消息进来时,可以在适当的控件中引用它们。

但是,我不知道该怎么做。例如,我知道我可以在用户控件内创建自定义事件,例如,如果每个控件都有一个“粗体”按钮,我可以让每个拥有该控件的页面实际使用该按钮。

然而,我还需要注册消息回调,以便我可以使用 MessageGrabber 向它发送数据,并且这不是在 UserControl 内部分配的,而是在新窗口进入时以编程方式分配的;但由于我没有可供参考的控件,因此我无法分配。


亲吻理念

像我现在这样创建表单,然后将该表单停靠在窗口或其他东西中,这不是更容易吗?所以,本质上,它仍然在创建表单,但它也是一个单独的窗口?


原始问题

好的,所以我被难住了(当涉及到复杂的 C# 逻辑时,这并不奇怪,哈哈)!我想要做的是以下几点:

目标:为新的聊天应用程序设置标签式聊天。

已完成:每当收到聊天消息或用户从花名册请求新聊天时,都会打开新窗口。这是完美的工作,并且仅在用户尚未打开聊天时打开一个窗口。那里很好很开心。

问题:我不想要窗户。好吧,我确实想要一个窗口,但是,我不想要大量单独的窗口。例如,我们的客户服务团队可能同时有大约 10 个活动的 IM 窗口,我不希望他们必须有 10 个窗口平铺在那里哈哈。我宁愿他们有一个私人 IM 窗口,并且所有 10 个选项卡都停靠在窗口内。

逻辑:这是我的逻辑,可能有缺陷,我深表歉意:

  • OnMessage:如果不存在,则打开新的聊天窗口;如果存在,请将其作为当前聊天窗口中的选项卡打开。
  • 发送消息:^^ 同上 ^^

代码示例

上面的注释:Util。函数只是跟踪在哈希表中打开了哪些窗口,这样,当消息进入时,它们会路由到正确的窗口。这是添加的:

frmChat() 形式的命令。

使用中的库:agsxmpp 来自: http ://www.ag-software.de/agsxmpp-sdk/download/

问题:如何将此代码转换为在选项卡内打开,而不是在窗口中打开?有人可以给我一些想法,并提供帮助。我似乎无法理解这个概念。

0 投票
3 回答
40245 浏览

c# - 将窗口停靠在另一个窗口中

我有一个 winform 应用程序(.NET 2.0 C#)。从这个应用程序,我想启动另一个进程(另一个 winform 应用程序)并将它停靠到我的窗口(或者至少让它看起来像停靠)。到目前为止,我只能找到有关停靠控件的信息,而不是单独进程中的窗口。我的第一个想法是获取窗口的句柄并使用非托管系统调用将窗口的高度/宽度和位置设置为我的停靠区域。但在我开始之前,我想看看你们中是否有好人做过类似的事情。我可以访问我想要停靠的应用程序的源代码,但如果可以避免,我宁愿不做任何更改。我对父应用程序具有完全的编程控制权。有什么建议吗?提前致谢!

0 投票
0 回答
939 浏览

winforms - WinForms + Devexpress 中的 Dock 布局问题

我有一个 WinForms 对话框,上面有很多 DevExpress 元素。该表单有几个SplitContainers 和一个TextEdit 元素和DevExpress XtraGrid 控件。

所有控件都为 Dock=Fill,或者在工具栏的情况下为 Dock=Top。

当我调整表单大小时,它不会重新布局所有元素,结果如下:http://dl.dropbox.com/u/51344/winforms1.png

直到我手动调整其中一个 SplitContainers 的大小,表单重新布局并且一切都恢复正常(http://dl.dropbox.com/u/51344/winforms2.png)。

我尝试调用在表单的 OnResize 事件中可以找到的所有“PerformLayout、Refresh、Redraw”函数,但没有成功。

在 RemoteDesktop 中运行时,该问题会导致更严重的布局问题。

有谁知道如何调试这个问题?


编辑:

我讨厌回答我自己的问题,几天来一直在与这个问题作斗争。这段丑陋的代码似乎可以解决问题。将拆分容器的大小调整一个像素以强制重新布局: