Hierarchical Xml Templates


   
   
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="Authors and Their Books">
    <Page.Resources>
        <XmlDataProvider x:Key="data" XPath="Authors">
            <x:XData>
                <Authors xmlns="">
                    <Author Name="Jane Austen">
                        <BirthDate>1972</BirthDate>
                        <DeathDate>2010</DeathDate>
                        <Books>
                            <Book Title="A">
                                <PubDate>2003</PubDate>
                            </Book>
                            <Book Title="B">
                                <PubDate>1813</PubDate>
                            </Book>
                        </Books>
                    </Author>
                </Authors>
            </x:XData>
        </XmlDataProvider>
        <HierarchicalDataTemplate DataType="Author" ItemsSource="{Binding XPath=Books/Book}">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding XPath=@Name}" />
                <TextBlock Text=" (" />
                <TextBlock Text="{Binding XPath=BirthDate}" />
                <TextBlock Text="-" />
                <TextBlock Text="{Binding XPath=DeathDate}" />
                <TextBlock Text=")" />
            </StackPanel>
        </HierarchicalDataTemplate>
        <HierarchicalDataTemplate DataType="Book">
            <StackPanel Orientation="Horizontal" TextBlock.FontSize="10pt">
                <TextBlock Text="{Binding XPath=@Title}" />
                <TextBlock Text="{Binding XPath=PubDate}" />
            </StackPanel>
        </HierarchicalDataTemplate>
    </Page.Resources>
    <TreeView ItemsSource="{Binding Source={StaticResource data}, XPath=Author}" />
</Page>

   
    
    
     


Using XmlDataProvider


   
    

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      HorizontalAlignment="Center" VerticalAlignment="Center">
    <Grid HorizontalAlignment="Center" VerticalAlignment="Center">
      <Grid.Resources>
        <XmlDataProvider x:Key="myXml" XPath="/Root">
          <x:XData>
            <Root xmlns="">
              <Item id="A" flag="True" value="A" />
              <Item id="B" flag="True" value="B" />
              <Item id="C" flag="False" value="C" />
              <Item id="D" flag="True" value="D" />
            </Root>
          </x:XData>
        </XmlDataProvider>
      </Grid.Resources>
      <ListView DataContext="{StaticResource myXml}" ItemsSource="{Binding XPath=Item}">
        <ListView.View>
          <GridView>
            <GridViewColumn Header="ID" DisplayMemberBinding="{Binding XPath=@id}" />
            <GridViewColumn Header="Enabled">
              <GridViewColumn.CellTemplate>
                <DataTemplate>
                  <CheckBox IsChecked="{Binding XPath=@flag}" />
                </DataTemplate>
              </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn Header="Value">
              <GridViewColumn.CellTemplate>
                <DataTemplate>
                  <TextBox Text="{Binding XPath=@value}" Width="70" />
                </DataTemplate>
              </GridViewColumn.CellTemplate>
            </GridViewColumn>
          </GridView>
        </ListView.View>
      </ListView>
    </Grid>
</Page>

   
    
    
    
     


XmlDataProvider and static Xml resource


   
    

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Simple Window">

<Grid xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid.Resources>
    <XmlDataProvider x:Key="dataProvider" XPath="Employees">
      <x:XData>
        <Employees xmlns="">
          <Employee Type="Beginner">
            <YearOfWorking>1</YearOfWorking>
          </Employee>
          <Employee Type="Intermediate">
            <YearOfWorking>2</YearOfWorking>
          </Employee>
          <Employee Type="Advanced">
            <YearOfWorking>3</YearOfWorking>
          </Employee>
        </Employees>
      </x:XData>
    </XmlDataProvider>
  </Grid.Resources>
    <ListBox ItemsSource="{Binding Source={StaticResource dataProvider},XPath=Employee/YearOfWorking}" />
</Grid>
</Window>

   
    
    
    
     


Set ItemWidth and ItemHeight for WrapPanel


   
     

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <WrapPanel ItemWidth="40" ItemHeight="40">
        <Button Width="30">A</Button>
        <Button Padding="10 10">B</Button>
        <Button Padding="30 30">C</Button>
        <Button Margin="10 10">D</Button>
        <Button HorizontalAlignment="Right">E</Button>
        <Button HorizontalAlignment="Left" >F</Button>
        <Button HorizontalAlignment="Stretch">G</Button>
        <Button Width="30" VerticalAlignment="Top" HorizontalAlignment="Left">H</Button>
        <Button Width="30" VerticalAlignment="Bottom" HorizontalAlignment="Right">I</Button>
        <Button Width="60" Height="60">J</Button>
        <Button Width="30">K</Button>
        <Button Width="30">L</Button>
        <Button Width="30">M</Button>
        <Button Width="30">N</Button>
        <Button Width="30">O</Button>
        <Button Width="30">P</Button>
    </WrapPanel>
</Window>

   
    
    
    
    
     


WrapPanel and Windows Controls


   
     
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Fun with Panels!" Height="284" Width="323">
  <WrapPanel Background="LightSteelBlue">
    <Label Width="328" Height="27" FontSize="15">Information</Label>
    <Label>A</Label>
    <TextBox Width="193" Height="25"/>
    <Label>B</Label>
    <TextBox Name="txtColor" Width="193" Height="25"/>
    <Label>C</Label>
    <TextBox Width="193" Height="25"/>
    <Button Name="btnOK" Width="80">OK</Button>
  </WrapPanel>
</Window>

   
    
    
    
    
     


WrapPanel with VerticalAlignment


   
     

<Window x:Class="LayoutPanels.SimpleWrap"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="LayoutPanels" Height="142" Width="431"
    >
  <WrapPanel Margin="3">
    <Button VerticalAlignment="Top">Top Button</Button>
    <Button MinHeight="60">Tall Button 2</Button>
    <Button VerticalAlignment="Bottom">Bottom Button</Button>
    <Button>Stretch Button</Button>
    <Button VerticalAlignment="Center">Centered Button</Button>   
  </WrapPanel>

</Window>