如何解决XAML中的“缺少类型”错误?

时间:2019-02-11 01:26:26

标签: wpf avalondock

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

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

但是当我创建一个新窗口并将其粘贴到提供的XAML中时,会出现一些预编译器错误:

  1.   

    XDG0008:名称空间“ clr-namespace:LiveExplorer”中不存在名称“ DemoView”。

  2.   

    XLS0414:找不到类型'local:DemoView'。确认您没有丢失程序集引用,并且所有引用的程序集均已构建。

enter image description here

很自然,只有解决了这些问题,项目才能建立。我不确定这是WPF问题还是XCeed问题。

我确实找到了this,但是很遗憾,它没有帮助。

我尝试将Namespace添加到后面的代码中:

Namespace LiveExplorer
  Public Class DemoView
  End Class
End Namespace

但是,这也不能缓解。我正在使用此程序包,其中包括AvalonDock控件:

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

我该怎么做才能使其正常工作? (我刚开始使用WPF,所以请慢慢走。)

1 个答案:

答案 0 :(得分:1)

“ 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>