标签: docking

有谁知道好delphi对接组件?

我们想将可移动面板添加到应用程序中.目前我们已经使用了DevExpress对接库,但发现它们令人失望地古怪且难以使用.它也有一些不太好的限制.

通过拖放自动隐藏,固定和移动页面都是我们想要使用的功能.

内置的delphi对接似乎没有足够的功能来完成我们需要的东西(另见下面的示例).也许我应该深入研究delphi的对接能力......我最初的印象是它们看起来非常像工具栏,而不是我可以放入框架的东西.

我在对接主题方面没有经验.我唯一的经验是使用DevExpress对接库,我需要以编程方式创建和停靠面板.

截图

是我的想象力还是DevExpress的产品过于难以使用/学习?与d2009 Ribbon Bar相比,DevExpress Ribbon Bar组件确实是一种有用的体验.我会尽快迁移到d2009功能区栏.这是令人耳目一新的直接学习和使用.与DevExpress相当的鲜明对比.如果使用DevExpress等效物需要4倍的时间,那么就该改变方向了.

关于停靠库,您有什么建议?

谢谢你的建议/意见!

delphi docking

7
推荐指数
1
解决办法
5340
查看次数

为什么Visual Studio 2008忘记了加载项窗口窗格的停靠位置?

我为Visual Studio 2008编写了一个简单的加载项,用于打开可停靠的窗口窗格.

您可以单击此处下载源和二进制安装程序.

加载项的性质意味着理想情况下它将停靠在编辑源的位置旁边.但有时候,在某些安装中,它不会停留在停靠状态.你运行VS,你停靠我的窗格,你关闭VS,你重新启动VS,然后敲响它 - 窗格再次浮动.在某些机器上,我每次都要重新对接它.

但是在其他安装中,无论我将它永远放在哪里,它都会停靠.我原本以为它可能是Vista和XP之间的区别,但现在我有报道称它在XP上也没有出现.

从我读过的内容(以及它有时会停留的事实)我得到的印象是VS应该为我保存对接状态.但事实并非如此.而在同一VS安装上的其他插件没有这个问题.所以我必须做些什么才能改善这种状况.

我怀疑我的代码中唯一相关的部分是这样的:

public class Connect : IDTExtensibility2
{
    private static DTE2 _applicationObject;
    private AddIn _addInInstance;
    private static CodeModelEvents _codeModelEvents;

    public static DTE2 VisualStudioApplication
    {
        get { return _applicationObject; }
    }

    public static CodeModelEvents CodeModelEvents
    {
        get { return _codeModelEvents; }
    }

    public static event EventHandler SourceChanged = delegate { };

    public void OnConnection(object application, 
           ext_ConnectMode connectMode, object addInInst, ref Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
    }

    public void OnStartupComplete(ref …
Run Code Online (Sandbox Code Playgroud)

add-in visual-studio-addins docking visual-studio-2008 visual-studio

7
推荐指数
1
解决办法
2738
查看次数

使标签在Qt中移动

我想在Qt中创建一个应用程序,其中QTabBar中的选项卡可以"取消停靠",因此它们将成为一个浮动窗口,或者可以拖入另一个QTabBar并"转移"到该QTabBar中.我的目标是让用户通过相互拖动模块来完全自定义界面.

如果您曾经使用过Adobe After Effects CS5,它具有我正在寻找的确切效果.它允许您拖动选项卡并使其浮动为其自己的窗口,将其停靠到另一个选项卡页面并执行更多操作.

所以,如果有人能指出我如何解决这个问题的正确方向,或者甚至在我开始的时候那将会很棒!

c++ qt tabs docking

7
推荐指数
1
解决办法
4230
查看次数

ManualFloat不使用指定的Rect

如果(在Delphi中)我这样做

Panel1.ManualFloat(Rect(500,500,600,600));
Run Code Online (Sandbox Code Playgroud)

面板不是浮动在指定的Rect位置,而是浮动在某种窗口的默认位置.如何让面板(或其他控件)浮动到指定位置.但它似乎确实具有正确的形状.我需要设置一些其他属性才能使其正常工作吗?

编辑:只是为了清楚.我希望上面的代码使得面板相对于屏幕的左上角位于(500x500)的100x100正方形,而不是.形状是正确的,但位置不正确.如果后续控件浮动,则它们在屏幕上级联.

编辑2:这在Delphi 7中似乎不是问题,但在Delphi 2007中通过XE2(可能更早)

delphi docking

7
推荐指数
1
解决办法
893
查看次数

重新锁定后,我的停靠控件上会出现关闭按钮

我有一个油漆盒,我希望用户能够移除和移动.所以我设置了DragKinddkDock及其DragModedmAutomatic,并把它在面板内部与DockSite集来True.当我将油漆盒与浮动形状脱开后,我在遇到油漆盒时会遇到一种相当奇怪的行为.浮动窗体的关闭按钮出现在面板内.我附上了两个截图.一个来自原始状态,一个再次对接油漆盒.我错过了什么?

原始状态:

在脱离之前

对接后:

对接后


更新 使用TLama的解决方案后,结果如下.

对接后;  使用新的dock manager

delphi docking delphi-xe2

7
推荐指数
1
解决办法
1465
查看次数

是否有更新的AvalonDock替代品?

我需要一个像AvalonDock这样的对接系统用于一个项目,但它似乎最后一次更新于2013年6月.是否有更多...积极开发我可以使用它?

wpf docking

7
推荐指数
1
解决办法
2400
查看次数

MDI模型还是Dock Windows?

在我们开发的QT应用程序中,我们需要显示几个"查看器窗口"(以在XY平面,YX平面,XZ平面和3D中显示数据).

我们希望使用MDI应用程序模型,但后来客户端要求在多个桌面中拖动和查看"查看器窗口"(使用多个监视器).使用MDI窗口模型无法完成此操作,因为我们无法在主应用程序窗口之外移动MDI窗口.

唯一可能的方法是使用Dock窗口,因为它们可以从主应用程序窗口移除并移动到其他桌面,但Dock窗口主要用于工具调色板或实用程序窗口.

(http://doc.qt.nokia.com/4.6/qdockwidget.html#details)

使用Dock窗口满足我们的要求是一个好习惯吗?

qt mdi docking qt4

6
推荐指数
1
解决办法
5162
查看次数

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

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

[ProvideToolWindow(typeof(MyToolWindow), Orientation = ToolWindowOrientation.Left, 
    Style=VsDockStyle.Linked, Window=EnvDTE.Constants.vsWindowKindLinkedWindowFrame)])]
[ProvideToolWindowVisibility(typeof(MyToolWindow), VSConstants.UICONTEXT.NoSolution_string)]
public class MyPackage : Package
{
    ...
Run Code Online (Sandbox Code Playgroud)

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

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

.net vsx docking

6
推荐指数
1
解决办法
1439
查看次数

.Net Control可以进行谷歌Chrome Docking

我喜欢Google Chrome允许您从窗口中抓取标签以创建其他窗口的方式.有没有人知道在我的.Net应用程序中是否有办法进行这种对接和取消停靠的方式?或者更好的是,是否有人知道是否有可以提供此类功能的.Net组件?

.net components google-chrome docking

5
推荐指数
1
解决办法
742
查看次数

可以停靠在第三方应用程序中的免费对接控件

我有一个应用程序(不是我的)使用CodeJock的AxXtremeDockingPane将可停靠的面板添加到应用程序.

AxXtremeDockingPane有一个调用的方法,调用AttachToWindow(int handle)该方法时会在窗口中创建一个对接管理器,提供句柄,可以是任何应用程序.

我想知道是否有任何其他免费/更便宜的对接控件可以让你做同样的事情?

我想要做的是,主应用程序(不是我的)在应用程序运行时在它的主窗口中创建一个停靠管理器,但是他们访问了AxXtremeDockingPane私有,这意味着我无法将自己的面板添加到主应用程序窗口.问题是如果您尝试创建一个新的AxXtremeDockingPane并AttachToWindow(int handle)使用主应用程序的句柄或任何子窗口调用它会抛出一个MemoryAccessViolation,因为那里已经有一个停靠管理器.

我想找到另一个可以做同样事情的套件,所以我可以在主窗口中创建一个新的对接管理器,所以在主窗口中有AxXtremeDockingPane和{other control}.

对不起有点难以解释.

有谁知道我怎么做,或知道任何工具.

c# docking dockpanel-suite winforms

5
推荐指数
1
解决办法
2465
查看次数