将AvalonDock从1.3升级到2.0

12

我正在尝试将应用程序中的AvalonDock从1.3升级到2.0,但是几乎没有相关文档。

我看了一下简介,通过这样做来导入它

xmlns:avalonDock="http://avalondock.codeplex.com"

然而这并没有起作用。

Error   The tag 'DockingManager' does not exist in XML namespace 'http://avalondock.codeplex.com'. Line 41 Position 10.

我也尝试了旧的方法。

xmlns:avalonDock="clr-namespace:AvalonDock;assembly=AvalonDock"

这个也不起作用

Error   The tag 'ResizingPanel' does not exist in XML namespace 'clr-namespace:AvalonDock;assembly=AvalonDock'. Line 71 Position 22.

如果他们已经重命名了控件,那么列出2.0中现有的控件列表将非常有用。

我尝试按照原样编译这个简单的代码,但是没有成功。

6个回答

36

我通过将

xmlns:avalonDock="http://avalondock.codeplex.com"

替换为

xmlns:avalonDock="http://schemas.xceed.com/wpf/xaml/avalondock"

来解决了这个问题。


9

目前唯一可用的文档是可以从codeplex下载的AvalonDock示例。http://avalondock.codeplex.com/releases

除此之外,智能感知是一个有用的指南。

============================================================

您看到的“DockingManager”错误是误导性的,因为它仍然存在于2.0版本中。以下内容可能有助于消除这些问题。此外,解决此问题后,智能感知将开始工作。
从互联网下载的文件往往会出现问题。它们有一个属性,导致访问受限。您必须手动删除此属性,以使XAML停止抱怨。
在Windows资源管理器中,右键单击文件,选择“属性”,然后单击“取消锁定”按钮。对于每个从互联网下载的单独文件都要这样做。确保重新构建项目,以替换bin文件夹中被阻止的副本。
顺便说一句,只有XAML编辑器认为存在问题时,我仍然可以运行该项目。

============================================================

在2.0中,所有内容都嵌套在布局控件中。您的所有窗格都可以是可锚定或文档样式的。以下是一个快速示例,以帮助您入门。 定义您的命名空间
xmlns:ad="http://avalondock.codeplex.com"

构建您的 DockingManager
<ad:DockingManager x:Name="dockManager">
    <ad:LayoutRoot>
        <ad:LayoutPanel Orientation="Horizontal">
            <ad:LayoutPanel Orientation="Vertical">
                <ad:LayoutPanel Orientation="Horizontal">
                    <ad:LayoutDocumentPaneGroup x:Name="leftDocumentGroup">
                        <ad:LayoutDocumentPane>
                            <ad:LayoutDocument Title="Left Doc"></ad:LayoutDocument>
                        </ad:LayoutDocumentPane>
                    </ad:LayoutDocumentPaneGroup>
                    <ad:LayoutDocumentPaneGroup x:Name="rightDocumentGroup">
                        <ad:LayoutDocumentPane>
                            <ad:LayoutDocument Title="Right Doc"></ad:LayoutDocument>
                        </ad:LayoutDocumentPane>
                    </ad:LayoutDocumentPaneGroup>
                </ad:LayoutPanel>
                <ad:LayoutAnchorablePaneGroup x:Name="bottomAnchorableGroup">
                    <ad:LayoutAnchorablePane>
                        <ad:LayoutAnchorable Title="Bottom Anch"></ad:LayoutAnchorable>
                    </ad:LayoutAnchorablePane>
                </ad:LayoutAnchorablePaneGroup>
            </ad:LayoutPanel>
            <ad:LayoutAnchorablePaneGroup x:Name="rightAnchorableGroup">
                <ad:LayoutAnchorablePane>
                    <ad:LayoutAnchorable Title="Right Anch"></ad:LayoutAnchorable>
                </ad:LayoutAnchorablePane>
            </ad:LayoutAnchorablePaneGroup>
        </ad:LayoutPanel>
    </ad:LayoutRoot>
</ad:DockingManager>

2
这个答案与上面的问题有什么关系? - Anders Gustafsson
Anders,他看到的错误是误导性的。它们是由我在这里概述的问题引起的。一旦按照我概述的步骤进行操作,这些错误就会消失。我的回答不清楚吗?如果不清楚,我很乐意重新表述。 - Malgaur
ResizingPanel在AvalonDock 2.0中不存在,因此当他尝试将应用程序从AD 1.3升级到2.0时出现此错误是合理的。即使@Frozendragon也遇到您提到的问题,上述解决方案仍无法解决主要问题。 - Anders Gustafsson
Anders,说得好。我描述的问题在这里很明显,因为即使它仍然存在,“DockManager”也会显示错误。我已经扩展了我的答案。感谢您的反馈。 - Malgaur
谢谢,这对我很有帮助,我的问题是 Unblock。 - amr osama

4

您可以使用以下命令向最新的AvalonDock版本添加引用。因此,您需要在Visual Studio的 Package Manager控制台上输入此命令。

Install-Package AvalonDock

您可以在 VS 中的“工具”菜单中找到此窗口,选择“库包管理器”,然后单击“程序包管理器控制台”。(更多详细信息)这将自动向您的项目添加所有引用!!!
另外,请替换此行。
xmlns:avalonDock="http://avalondock.codeplex.com"

by

xmlns:avalonDock="http://schemas.xceed.com/wpf/xaml/avalondock"

如保罗·吉伦所述


2

您需要将命名空间定义为xmlns:avalonDock="http://schemas.xceed.com/wpf/xaml/avalondock"

您还需要确保您的项目已配置为使用.NET 4或更高版本。


1

当我第一次切换到AvalonDock 2.0时,我遇到了类似的错误消息。这可能是一个很小的机会,但是你是否将AvalonDock.dll放在网络驱动器上?我发现一旦我将DLL移动到我的项目目录中,我就不再有这个问题了。

{{link1:.NET程序集在网络驱动器上以部分信任运行,但所有其他程序集都以完全信任运行}}

(我本来想将这个答案添加为评论,但我没有足够的声望来添加评论。)


0
在我的案例中,我有两个问题,第一个问题是该文件被阻止了,需要通过文件资源管理器将其解除阻止。

enter image description here

第二,我必须更改对新地址的引用。从以下链接更改,该链接列在AvalodDock文档上。
xmlns:avalonDock="http://avalondock.codeplex.com"

到新的链接

xmlns:avalonDock="http://schemas.xceed.com/wpf/xaml/avalondock"

这也会出现在Intellisense中

enter image description here

我在运行。

AvalonDock 版本:2.0.2000.0

.NET Framework 4.6.1


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接