wpfavalondock

How to resolve 'missing type' errors in XAML?


I'm trying to get an AvalonDock sample working:

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

But when I create a new window and paste in the provided XAML, I get a couple of precompiler errors:

  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.

enter image description here

Naturally the project won't build until these are resolved. I'm not sure whether this is a WPF issue or an XCeed issue.

I did find this, but unfortunately it doesn't help.

I tried adding the Namespace to the code-behind:

Namespace LiveExplorer
  Public Class DemoView
  End Class
End Namespace

But that didn't provide relief either. I'm using this package, which includes the AvalonDock control:

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

What must I do to get this to work? (I'm just getting started with WPF, so please go slowly.)


Solution

  • "DemoView" is just the name of the view. Skip the first 4 lines when you copy and paste the sample markup into your XAML file, i.e. paste this only:

    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>
    

    ...into your MainWindow.xaml or whatever your sample file is called:

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