WPF XAML命名空间问题

时间:2011-03-23 17:09:47

标签: wpf xaml namespaces

使用以下代码:

<ad:DockingManager x:Class="Main.AvalonDock.Views.AvalonDockView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:ad="clr-namespace:AvalonDock;assembly=AvalonDock" 
             xmlns:cal="http://www.codeplex.com/prism"
             mc:Ignorable="d" 
             d:DesignHeight="293" d:DesignWidth="504">
    <ad:ResizingPanel Margin="0,10,0,10" Orientation="Horizontal" >
        <ad:DockablePane cal:RegionManager.RegionName="MainLeftRegion" Name="leftDockablePane" />
        <ad:DocumentPane cal:RegionManager.RegionName="MainCenterRegion" Name="mainDocumentPane" />
        <ad:DockablePane cal:RegionManager.RegionName="MainRightRegion" Name="rightDockablePane" />
    </ad:ResizingPanel>
</ad:DockingManager>

我的项目名称是Main.AvalonDock,它使用AvalonDock控件。由于广告命名空间和项目命名空间之间存在差异,因此无法编译。有解决方法吗?

发生错误:

  

类型或命名空间名称   'DockablePane'不存在于   命名空间   'Main.AvalonDock'   (你错过了一个集会吗?   引用?)

1 个答案:

答案 0 :(得分:2)

如果查看项目obj文件夹中的AvalonDockView.g.cs(或AvalongDockView.g.vb),您将看到潜在的问题。

基本上,你最终会得到类似的东西:

using Main.AvalonDock.Views {
    internal AvalonDock.DockablePane leftDockablePane;
    // ...
}

使用C#类型解析规范,AvalonDock解析为您的命名空间,而不是AvalonDock程序集中的命名空间。