我正在寻找一些用于在Java中创建gui的框架或工具包(样式拖放).我需要使用停靠,工具栏,表等进行相当复杂的应用程序.
哪一个最好?
我正在为我的下一个项目考虑不同的用户界面布局,我想知道是否有集成或第三方框架允许我创建选项卡式文档界面?
为了澄清,我想要的不是某种对接机制或者是MDI接口,而是主要是一个框架,它允许我有一个主要形式和一个或多个辅助形式,它们将在主要形式中显示为制表符.
虽然我说我不想要任何类型的对接机制,但我做了一个实际使用它的小型测试应用程序.我得到的结果非常接近我想要的.首先,我想念一些功能,如每个标签上的关闭按钮.其次,我必须创建自己的某种框架,以便自动执行所有任务,例如创建和销毁选项卡,将每个新表单与其选项卡相关联,在关联的选项卡关闭时释放表单等等.我不是说我做不到,但我想知道是否有任何现成的框架已经拥有所有这些功能.虽然我更喜欢开源解决方案,但也欢迎使用商业解决方案.
delphi user-interface docking tabbed-document-interface delphi-2010
Windows窗体项目,仅在设计器中工作(即在编译之前使用鼠标).我有一个表格和2个面板.panel1在form1中停靠(选项 - 填充).panel2也在form1中停靠(填充).另外,panel2位于panel1的前面(后者隐藏在前者后面).我的问题是 - 当我取消停靠panel2并再次停靠它 - 它停靠在panel1(panel1成为它的父级)而不是form1.如何更改panel2的父级?
我想出迄今唯一的解决办法是切割(CTRL + X)是Panel2,选择Form1中,然后粘贴(CTRL + V)是Panel2,但这,出于某种原因,除去是Panel2控制和代码之间的所有连接(例如点击虽然处理事件的功能仍然存在,但panel2上的按钮不再起作用.
有更好的想法吗?
我在WPF项目中使用AvalonDock和MVVM.
当我点击"X"(选项卡的关闭按钮)时,我的文档关闭但保留在内存中.它似乎只是隐藏的.它不会从我的Model.Documents
收藏中删除.
如果我添加DockingManager_DocumentClosing
并尝试从集合中删除我的文档,我会在以下方法中收到异常,Xceed.Wpf.AvalonDock.Layout.LayoutContent
因为它parentAsContainer
是null.
/// <summary>
/// Close the content
/// </summary>
/// <remarks>Please note that usually the anchorable is only hidden (not closed). By default when user click the X button it only hides the content.</remarks>
public void Close()
{
var root = Root;
var parentAsContainer = Parent as ILayoutContainer;
parentAsContainer.RemoveChild(this);
if (root != null)
root.CollectGarbage();
OnClosed();
}
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何管理AvalonDock中可以从我的文件中移除的文件,Model.Documents
以便在我按下Close
按钮时最终被处理掉?
供参考:这是我的AvalonDock的XAML:
<avalonDock:DockingManager
x:Name="DockingManager"
DocumentsSource="{Binding DocumentItems}"
ActiveContent="{Binding ActiveMainWindowViewModel,
Converter={StaticResource RestrictedClassConverter}, …
Run Code Online (Sandbox Code Playgroud) 我在.NET Framework 4.0版中使用C#Winforms
我有一个面板,其中包含四个标签,所有标签都停靠在面板的顶部.中间的两个标签是隐藏的.
---顶部---
标签一(可见)
标签二 - (不可见)
标签三(不可见)
标签四 - (可见)
---底部---
单击带有以下代码的按钮时
private void btnShowLabels_Click(object sender, EventArgs e)
{
this.lblTwo.Visible = true;
this.lblThree.Visible = true;
}
Run Code Online (Sandbox Code Playgroud)
标签二和三出现,但它们的z顺序混合起来,如下所示.
---顶部---
标签一(可见)
标签三(可见)
标签二 - (可见)
标签四 - (可见)
---底部---
为什么z顺序会发生变化,如何阻止这种情况发生.
我意识到我可以BringToFront()
在点击事件中使用重新排序所有标签,但这对于更复杂的对接安排尤其有点过分.
我试图让我自己的用户控制并几乎完成它,只是试图添加一些抛光.我希望设计器中的选项"Dock in parent container".有谁知道如何做到这一点我找不到一个例子.我认为它与Docking Attribute有关.
看看这个名为Construct的开源应用程序 .
它使用Panel Docking,您可以在其中拖动Panel,然后使用屏幕上的一些视觉辅助工具来显示Panel可以停靠的位置,如下所示:
在拖动/停靠之前
在拖动/停靠阶段
当拖动/移动其中一个Dock面板时,Window现在看起来像这样:
如您所见,在拖动/移动对象面板时,它会显示面板可以停靠的位置的视觉帮助.当它不在对接位置时,它也像自由窗口一样移动.在此示例中拖动/移动其他Dock面板(例如"项目面板")时也是如此.
这是一个使用它的应用程序的示例,我也看到其他应用程序也使用它.
是否有德尔福实现这种行为的方式?
我有一些占用一些空间,自由移动或对接它们的面板将是有用的功能实现.
谢谢.
UPDATE
LMD组件似乎提供了这样一个组件,我可以研究一下.
我正在寻找类似于视觉工作室的对接控制.[用于ac#程序]
我和Weifen-Luo的Docking Library一起玩了很多,虽然效果很好,但对于我正在做的事情并不是很正确.我需要能够将项目停靠在选项卡控件中(或者面板也可以工作),而不是在mdi表单中.
我想要在选项卡中停靠的原因是因为在当前设置中我的主窗体有两个选项卡.
在主选项卡中,我不想要任何对接控件.但在第二个选项卡中,我希望用户能够使用工具对接.
我希望有一个免费的解决方案,也许我可以为Weifen-Luo的Docking Library源提供一些模块.
我只是在寻找任何建议,提前谢谢!
我有一个带有一些内部可停靠窗户的主窗口.我可以移动,调整大小并重做那些可停靠的窗口.关闭并重新打开程序后,我希望保持移动,大小和重新锁定.有没有简单的方法来实现它?我认为它会使用设置.但是哪些信息应保存在设置中.以及如何设置所有这些停靠窗口的默认布局?单击操作按钮时,可以将其还原.谢谢.
我有一个 MDI 父窗体作为我的应用程序的主窗口。在这里面,Form
我还有另外两个Control
aPanel
和 a StatusStrip
,它们分别停靠在Right
和Bottom
上。
我的问题是StatusStrip
没有“填充”整个Form
. 它由Panel
右侧的停止。
我会通过DockStyle
Visual Studio 属性窗口中的图形认为Bottom
停靠Control
将填充Form
.
有没有办法StatusStrip
填充整个底部并Panel
停靠到Right
同时仍然保持 MDI 区域?(MDI 区域中未停靠的控件允许窗口“隐藏”在它们后面)。