- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试学习 WPF 中的 AvalonDock 环境。我有一个可锚定 Pane ,其中包含一个显示对象列表(基本上包含名称和值)的 TreeView 。
我还有一些托管 UserControl 的文档 Pane 。我可以将一个项目从 TreeView 拖到一个文档中(UserControl 基本上是一个 WrapPanel)然后放下它,它添加了第二个用户控件类型(这个用户控件有一个绑定(bind)到“名称”的文本 block 和一个绑定(bind)到“值”的文本框') 由文档托管到我的控件中。
现在 - 我希望能够保存此布局 - 以及通过拖放创建的动态内容。
这可能吗?使用 XmlLayoutSerializer 时,我看到生成的 xaml 有我的文档和 anchor ,但这些项目都没有任何内容。
我是否应该保存对象的集合(即我绑定(bind)的 ObservableCollection)并在我想“恢复” View 时初始化该集合?
目的是让最终用户可以修改 View 以显示他们想要的数据(来自 TreeView )并按照他们认为合适的方式安排布局。
感谢指点
最佳答案
CodeProject 上有一篇文章描述了一个解决方案: https://www.codeproject.com/articles/719143/avalondock-tutorial-part-load-save-layout
你也可以看看 Gemini 项目,它有一个更灵活的解决方案: https://github.com/tgjones/gemini/重要的东西在 Gemini/Framework 目录中。
这是一个纯粹的 MVVM 解决方案,它将所有文档和布局项目保存在主/shell View 模型中并对其进行数据绑定(bind)。在保存布局时,它会要求每个 View 模型保存其状态,并且最后保留 DockingManager
状态。加载布局时,首先读取所有状态,然后在 AvalonDocks XmlLayoutSerializer
的 LayoutSerializationCallback
事件中重新创建 View 模型。这是一种很好且干净的方法,但是(据我所知)它无法处理完全在 XAML 中创建控件并使用某种消息传递(例如 Prism EventAggregator
)连接到应用程序其余部分的情况.
要解决此类问题,您需要来自托管 DockingManager
的 View 的帮助,向它询问 LayoutAnchorables
和 LayoutDocuments
并使用类似的机制保存/加载它们的状态。它不像原始解决方案那样优雅和纯粹的 MVVM,但我发现它更灵活。您可以将所有内容包装在几个接口(interface)和扩展方法中。
我为我的项目做了类似的事情,效果很好。可能有一天会把它放在 GitHub 上。
关于c# - 使用动态内容保存 AvalonDock 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45765035/
我的申请没有多个文件。所以我不需要 LayoutDocumentPane 中显示的选项卡。我发现它可以通过在此处使用样式进行自定义。 http://avalondock.codeplex.com/wi
我像这样使用 avalondock LayoutDocumentPane:
我正在开发一个可以使用 AvalonDock 的 WPF 界面,或类似的可停靠窗口界面。我的理解是 AvalonDock 是一个非常好的可停靠窗口界面,但我有点担心它的持续状态。真的很活跃吗?网站讨论
似乎 AvalonDock 在任何时候通过停靠或取消停靠操作窗口时都会卸载并重新加载其文档窗口的内容。有没有可能把它关掉? 就我而言,我正在显示实时视频流,我需要在窗口设置为 float 或重新停靠时
有谁知道如何在 AvalonDock 2.0 中更改 LayoutAnchorable 和 LayoutDocument 标题的字体属性?我希望能够应用在我的 WPF 应用程序中随处使用的样式以保持一
我正在使用知名的对接库AvalonDock 2.0在我的 WPF 项目中。该库支持 MVVM,这就是我想要做的。 GitHub 上提供了示例 MVVM 测试应用程序.我下载了示例并将其扩展以显示我需要
我使用的加载/保存布局类似于CodeProject所述。捕获LayoutSerializationCallback事件并尝试为LayoutItem查找相应的viewModel private void
使用 avalondock在 MVVM 环境中似乎相当具有挑战性。一旦我从 shellview 中分离 DocumentPane,我就会丢失相应的数据上下文并且我的 View 是空的。重新连接时,它会
我有一个使用 Avalon Dock 2.0 作为停靠管理器的 WPF 应用程序。我遇到了有关 Avalon Dock 正在执行的新打开选项卡的标准定位问题。 只要所有选项卡都适合选项卡栏,就会在选项
我有一个使用 Avalon Dock 2.0 作为停靠管理器的 WPF 应用程序。我遇到了有关 Avalon Dock 正在执行的新打开选项卡的标准定位问题。 只要所有选项卡都适合选项卡栏,就会在选项
如果 Pane 获得焦点,我想更改 Pane 标题的背景。 所以试了一下:
我刚刚开始使用 AvalonDock,几天来我一直在苦苦挣扎。我正在尝试从反序列化的停靠管理器加载我的布局的平凡任务。我尝试了这篇文章所建议的(“AvalonDock DockingManager d
我在项目中使用 AvalonDock。为了这个例子,它的结构如下: 这很好,但不幸的是,这些选项卡在高对
我正在尝试将我的 WPF 应用程序转换为使用 AvalonDock。我有几个窗口(大约 10 个)和具有 DockingManager 的主窗体。我想将这些窗口放在 DockingManager 中。
我想更改 AvalonDock 的 Metro 主题颜色。我也问了a related question on Codeplex但到目前为止我还没有得到答案。 我将以下 XAML ( source fi
我正在尝试在 AvalonDock 中选择选项卡(在 LayoutDocumentPaneGroup 和 LayoutAnchorablePane 中)。这看起来应该是一件容易的事,但我正在努力寻找有
我试图弄清楚如何使 AvalonDock 的 VS2010 风格更像 VS2010。我运行的问题是,当有更多的标签时比在标题区域中适合时,用户没有更多的标签。 我认为选项卡标题只是被剪裁而不可见。我有
我有一个带有 AvalonDock 的窗口。启动时会打开一个文档,其中充满 LocControllers 用户控件 (LocControllersViewModel)。 现在我希望当双击 LocCon
我想删除它们,因为这给我带来了很多问题。如果有办法解决它,我会很乐意尝试。 使用它的前几分钟我得到了 3 个不同的异常(exception),我不知道如何删除那些该死的选项。 固定和取消固定和固定会引
我的 MVVM WPF 应用程序中有一个 AvalonDock(版本 3.5)。绑定(bind)如下: 因此,当我在 View 模型中将新的 Anchorable 添加到相应的“Anchor
我是一名优秀的程序员,十分优秀!