代码之家  ›  专栏  ›  技术社区  ›  InteXX

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

  •  0
  • InteXX  · 技术社区  · 5 年前

    我想让一个阿瓦朗多克样品工作:

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

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

    1. xdg008:命名空间“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 回复  |  直到 5 年前
        1
  •  1
  •   mm8    5 年前

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