问题标签 [avalondock]

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 投票
3 回答
4809 浏览

wpf - Prism RegionAdapter - 删除然后添加视图

我有一个包含 AvalonDock 的 prism/wpf/mef 解决方案。我创建了一个RegionAdapterBase<Pane>类来处理从 AvalonDock 创建和删除窗格。

这是我遇到的问题:

  1. 我单击菜单中的一个按钮,一个视图注册到一个区域并显示在我的DocumentPane
  2. 我单击 AvalonDock 中的关闭按钮以关闭选项卡并删除视图
  3. 我单击相同的菜单按钮再次将其添加回来
  4. 我收到错误:

“指定元素已经是另一个元素的逻辑子元素。先断开它。”

所以......这告诉我有东西挥之不去,我需要删除,但我不知道它在哪里。下面是我的 RegionAdapter 中的一些代码:

从我的调试行中,DocumentPane视图和区域视图正在被正确销毁......当我单击以将项目添加回视图时,我在以下行中收到上述错误消息:

这是按下菜单按钮时运行的模块中的代码:

知道我错过了什么吗?

0 投票
2 回答
1138 浏览

c# - 未捕获 ExecutionEngineException

我很好奇为什么在执行下面的代码时没有捕获到 ExecutionEngineException。

永远不会到达 WriteLine。任何想法如何捕捉这个异常?

注意:我知道当 DockablePanes 之一处于 AutoHide 模式、可见并且用户试图关闭 wpf 窗口时,AvalonDock 会引发异常。

更新:我已阅读msdn 上有关此异常的备注部分:

CLR 永远不会以托管代码可以捕获它的方式抛出此异常。

所以问题是如何在这样的事情之后很好地关闭应用程序。

0 投票
1 回答
587 浏览

c# - 浮动 DockableContent 位置

我不确定我的术语是否正确,但是当我取消停靠 (DockableContent) 选项卡时,我可以让它漂浮在我的桌面上,就好像它是一个工具窗口一样。Top 和 Left 似乎不是可用的属性。如何确定它在屏幕上的位置?

0 投票
1 回答
1931 浏览

mvvm - avalondock mvvm

在 MVVM 环境中使用avalondock似乎相当具有挑战性。一旦我从 shellview 中分离 DocumentPane,我就会丢失相应的数据上下文并且我的视图是空的。重新连接时,它会恢复正常。

有没有人有办法解决吗 ?

0 投票
3 回答
1850 浏览

wpf - DockableFloatingWindow 上的最大化和 Aero 捕捉

我有以下代码使未停靠的浮动 AvalonDock 窗口能够最大化:

我该如何为此添加Aero Snap功能?

0 投票
1 回答
2335 浏览

c# - 在关闭 C# 之前保存 Avalon Dock 文档内容

我在类似于 notepad++ 的项目中使用 Avalon Dock 我将文档作为文档内容,我面临的问题是当用户关闭文档内容时

如果他/她想在关闭之前保存文档,我希望他得到一个弹出消息。

我怎样才能做到这一点?

先感谢您。

0 投票
5 回答
3413 浏览

c# - AvalonDock DocumentContent 没有被垃圾收集

我创建了一个使用 AvalonDock 框架的应用程序。AvalonDock.DocumentContent一个关键部分是使用派生编辑器编辑域模型实体的能力。我遇到了一个问题,发现我的编辑器在关闭并从集合中删除后没有被垃圾收集DockingManager.Documents

经过一番徒劳的搜索后,我创建了一个可以通过以下方式重新创建的小型测试应用程序:

  • 在 Visual Studio(我使用的是 2008)中,创建一个名为的新 WPF 应用程序AvalonDockLeak
  • 添加对AvalonDock库的引用(我的版本是1.3.3571.0);
  • 添加一个名为Document;的新用户控件
  • 将 Document.xmal 更改为:

    /li>
  • 将 Document.xmal.cs 更改为:

    我添加的析构函数能够诊断问题,在打开 { 的方法上添加断点,并查看它是否被命中。它总是在关闭测试应用程序时执行,但不是更早。

  • 现在将 Window1.xaml 更改为:

    /li>
  • 将 Window1.xaml.cs 更改为:

    /li>

这个简单的应用程序也包含泄漏。~Document()可以通过打开 { 关闭 a 后没有被命中的断点来观察DocumentContent

现在我想要的是,这是一个已知问题吗?有没有办法防止它?如果对象只是在很长一段时间后才被垃圾收集,那么我能做些什么来加快这一点?顺便说一下,调用 GC.Collect() 并没有帮助。

0 投票
1 回答
663 浏览

wpf - 为什么这个数据绑定不起作用?(WPF)

我有这个不起作用的数据绑定,我不知道为什么。我在输出窗口中收到的消息是:

xml是:

C#'代码如下:

更新1

简化版:

Xaml 代码(用户控件)

用户控制 C# 代码:

我在输出中没有收到任何绑定错误,但分箱不起作用。

更新2

检查 Snoop,我发现 UserControl1 不是 textbox2 的父级(!)。我相信 Avalon 扩展坞将父类型从 UserControl1 更改为不同的类型。MainGrid 的父级是 contentPresenter,并且在可视化树中没有 UserControl。

我能做些什么?

0 投票
1 回答
324 浏览

prism - 恢复布局不会恢复模块内容

我正在使用带有 AvalonDoc 的棱镜。

当我尝试恢复布局时(在菜单按钮“RestoreLayout”的事件处理程序上)

dockManager.RestoreLayout(文件名);

我确实得到了正确的布局结构,但是每个区域的内容现在都是空的。我需要重新加载到模块或类似的东西吗?

我的 xaml 代码中的 avalondoc 代码是这样的:

0 投票
1 回答
1102 浏览

avalondock - AvalonDock 鼠标右键菜单

如何在 DockablePane(AvalonDock.dll 中的 UI)鼠标右键菜单中禁用?请帮助,我需要那个。因为我想为我的项目提供多语言,而且它只有英文