如何解决 XAML 中的 'missing type' 错误?

How to resolve 'missing type' errors in XAML?

我正在尝试让 AvalonDock 示例工作:

https://github.com/xceedsoftware/wpftoolkit/wiki/AvalonDock

但是当我创建一个新的 window 并粘贴到提供的 XAML 时,我遇到了一些预编译错误:

  1. XDG0008: The name "DemoView" does not exist in the namespace "clr-namespace:LiveExplorer".

  2. XLS0414: The type 'local:DemoView' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.

当然,在解决这些问题之前,项目不会构建。我不确定这是 WPF 问题还是 XCeed 问题。

我确实找到了 this,但不幸的是它没有帮助。

我尝试将 Namespace 添加到 code-behind:

Namespace LiveExplorer
  Public Class DemoView
  End Class
End Namespace

但这也没有提供缓解。我正在使用这个包,其中包括 AvalonDock 控件:

https://www.nuget.org/packages/Extended.Wpf.Toolkit/

我必须怎么做才能让它发挥作用? (我刚刚开始使用WPF,所以请慢慢来。)

"DemoView" 只是视图的名称。将示例标记复制并粘贴到 XAML 文件时跳过前 4 行,即仅粘贴:

xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:xcad="http://schemas.xceed.com/wpf/xaml/avalondock"
xmlns:s="clr-namespace:System;assembly=mscorlib">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <StackPanel Orientation="Horizontal" Margin="0,0,0,10">
        <TextBlock Text="Theme:" Margin="0,0,10,0" VerticalAlignment="Center"/>
        <ComboBox x:Name="_themeCombo" SelectedIndex="0" Width="200">
            <ComboBoxItem Content="Generic" />
            <ComboBoxItem Content="Aero">
                <ComboBoxItem.Tag>
                    <xcad:AeroTheme />
                </ComboBoxItem.Tag>
            </ComboBoxItem>
            <ComboBoxItem Content="VS2010">
                <ComboBoxItem.Tag>
                    <xcad:VS2010Theme />
                </ComboBoxItem.Tag>
            </ComboBoxItem>
            <ComboBoxItem Content="Metro">
                <ComboBoxItem.Tag>
                    <xcad:MetroTheme />
                </ComboBoxItem.Tag>
            </ComboBoxItem>
        </ComboBox>
    </StackPanel>

    <xcad:DockingManager Grid.Row="1" MaxHeight="425"
                           AllowMixedOrientation="True"
                           BorderBrush="Black"
                           BorderThickness="1"
                           Theme="{Binding ElementName=_themeCombo, Path=SelectedItem.Tag}">
        <xcad:DockingManager.DocumentHeaderTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <Image Source="{Binding IconSource}" Margin="0,0,4,0"/>
                    <TextBlock Text="{Binding Title}" />
                </StackPanel>
            </DataTemplate>
        </xcad:DockingManager.DocumentHeaderTemplate>
        <xcad:LayoutRoot x:Name="_layoutRoot">
            <xcad:LayoutPanel Orientation="Horizontal">
                <xcad:LayoutAnchorablePane DockWidth="200">
                    <xcad:LayoutAnchorable ContentId="properties" Title="Properties" CanHide="False" CanClose="False"
                                            AutoHideWidth="240"
                                         IconSource="../Images/property-blue.png">
                        <xctk:PropertyGrid NameColumnWidth="110"
                        SelectedObject="{Binding ElementName=_layoutRoot, Path=LastFocusedDocument.Content}"/>
                    </xcad:LayoutAnchorable>
                </xcad:LayoutAnchorablePane>
                <xcad:LayoutDocumentPaneGroup >
                    <xcad:LayoutDocumentPane>
                        <xcad:LayoutDocument ContentId="document1" Title="Document 1" IconSource="../Images/document.png" >
                            <Button Content="Document 1 Content" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                        </xcad:LayoutDocument>
                        <xcad:LayoutDocument ContentId="document2" Title="Document 2" IconSource="../Images/document.png">
                            <TextBox Text="Document 2 Content" AcceptsReturn="True"/>
                        </xcad:LayoutDocument>
                    </xcad:LayoutDocumentPane>
                </xcad:LayoutDocumentPaneGroup >
                <xcad:LayoutAnchorablePaneGroup DockWidth="125">
                    <xcad:LayoutAnchorablePane>
                        <xcad:LayoutAnchorable ContentId="alarms" Title="Alarms" IconSource="../Images/alarm-clock-blue.png" >
                            <ListBox>
                                <s:String>Alarm 1</s:String>
                                <s:String>Alarm 2</s:String>
                                <s:String>Alarm 3</s:String>
                            </ListBox>
                        </xcad:LayoutAnchorable>
                        <xcad:LayoutAnchorable ContentId="journal" Title="Journal" >
                            <RichTextBox>
                                <FlowDocument>
                                    <Paragraph FontSize="14" FontFamily="Segoe">
                                        This is the content of the Journal Pane.
                                        <LineBreak/>
                                        A
                                        <Bold>RichTextBox</Bold> has been added here
                                    </Paragraph>
                                </FlowDocument>
                            </RichTextBox>
                        </xcad:LayoutAnchorable>
                    </xcad:LayoutAnchorablePane>
                </xcad:LayoutAnchorablePaneGroup>
            </xcad:LayoutPanel>

            <xcad:LayoutRoot.LeftSide>
                <xcad:LayoutAnchorSide>
                    <xcad:LayoutAnchorGroup>
                        <xcad:LayoutAnchorable Title="Agenda" ContentId="agenda" IconSource="../Images/address-book-open.png">
                            <TextBlock Text="Agenda Content" Margin="10" FontSize="18" FontWeight="Black" TextWrapping="Wrap"/>
                        </xcad:LayoutAnchorable>
                        <xcad:LayoutAnchorable Title="Contacts" ContentId="contacts" IconSource="../Images/address-book--pencil.png" >
                            <TextBlock Text="Contacts Content" Margin="10" FontSize="18" FontWeight="Black" TextWrapping="Wrap"/>
                        </xcad:LayoutAnchorable>
                    </xcad:LayoutAnchorGroup>
                </xcad:LayoutAnchorSide>
            </xcad:LayoutRoot.LeftSide>
        </xcad:LayoutRoot>
    </xcad:DockingManager>
</Grid>

...进入您的 MainWindow.xaml 或任何您的示例文件:

<Window x:Class="WpfApp5.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        <!-- PASTE HERE -->
</Window>

错误 XLS0414:

只需添加:xmlns:local="clr-namespace:YourProjName;assembly=YourProjName"