Try all AnchorStyles

image_pdfimage_print
   
 
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

class AnchorForm : System.Windows.Forms.Form {

    public AnchorForm() {
        InitializeComponent();
        CenterToScreen();
    }

    protected void dockNone_Click(object sender, System.EventArgs e) {
        btnTheButton.Dock = DockStyle.None;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    protected void dockFill_Click(object sender, System.EventArgs e) {
        btnTheButton.Dock = DockStyle.Fill;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    protected void dockRight_Click(object sender, System.EventArgs e) {
        btnTheButton.Dock = DockStyle.Right;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    protected void dockLeft_Click(object sender, System.EventArgs e) {
        btnTheButton.Dock = DockStyle.Left;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    protected void dockBottom_Click(object sender, System.EventArgs e) {
        btnTheButton.Dock = DockStyle.Bottom;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    protected void dockTop_Click(object sender, System.EventArgs e) {
        btnTheButton.Dock = DockStyle.Top;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    protected void ancRight_Click(object sender, System.EventArgs e) {
        btnTheButton.Anchor = AnchorStyles.Right;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    protected void ancBottom_Click(object sender, System.EventArgs e) {
        btnTheButton.Anchor = AnchorStyles.Bottom;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    protected void ancLeft_Click(object sender, System.EventArgs e) {
        btnTheButton.Anchor = AnchorStyles.Left;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    protected void ancTop_Click(object sender, System.EventArgs e) {
        btnTheButton.Anchor = AnchorStyles.Top;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    private void ancNone_Click(object sender, System.EventArgs e) {
        btnTheButton.Anchor = AnchorStyles.None;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    private void ancTopLeft_Click(object sender, System.EventArgs e) {
        btnTheButton.Anchor = AnchorStyles.Top | AnchorStyles.Left;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    private void ancTopRight_Click(object sender, System.EventArgs e) {
        btnTheButton.Anchor = AnchorStyles.Top | AnchorStyles.Right;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    private void ancBotLeft_Click(object sender, System.EventArgs e) {
        btnTheButton.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    private void ancBotRight_Click(object sender, System.EventArgs e) {
        btnTheButton.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
        btnTheButton.Text = "Anchor: " + btnTheButton.Anchor.ToString() +
            "
Dock: " + btnTheButton.Dock.ToString();
    }

    private void InitializeComponent() {
        this.dockRight = new System.Windows.Forms.MenuItem();
        this.dockBottom = new System.Windows.Forms.MenuItem();
        this.ancNone = new System.Windows.Forms.MenuItem();
        this.ancTopLeft = new System.Windows.Forms.MenuItem();
        this.ancTop = new System.Windows.Forms.MenuItem();
        this.dockFill = new System.Windows.Forms.MenuItem();
        this.mnuMainMenu = new System.Windows.Forms.MainMenu();
        this.mnuAnchor = new System.Windows.Forms.MenuItem();
        this.ancLeft = new System.Windows.Forms.MenuItem();
        this.ancBottom = new System.Windows.Forms.MenuItem();
        this.ancRight = new System.Windows.Forms.MenuItem();
        this.ancTopRight = new System.Windows.Forms.MenuItem();
        this.ancBotLeft = new System.Windows.Forms.MenuItem();
        this.ancBotRight = new System.Windows.Forms.MenuItem();
        this.mnuDock = new System.Windows.Forms.MenuItem();
        this.dockTop = new System.Windows.Forms.MenuItem();
        this.dockLeft = new System.Windows.Forms.MenuItem();
        this.dockNone = new System.Windows.Forms.MenuItem();
        this.btnTheButton = new System.Windows.Forms.Button();
        this.SuspendLayout();
        // 
        // dockRight
        // 
        this.dockRight.Index = 3;
        this.dockRight.Text = "Right";
        this.dockRight.Click += new System.EventHandler(this.dockRight_Click);
        // 
        // dockBottom
        // 
        this.dockBottom.Index = 1;
        this.dockBottom.Text = "Bottom";
        this.dockBottom.Click += new System.EventHandler(this.dockBottom_Click);
        // 
        // ancNone
        // 
        this.ancNone.Index = 4;
        this.ancNone.Text = "None";
        this.ancNone.Click += new System.EventHandler(this.ancNone_Click);
        // 
        // ancTopLeft
        // 
        this.ancTopLeft.Index = 5;
        this.ancTopLeft.Text = "TopLeft";
        this.ancTopLeft.Click += new System.EventHandler(this.ancTopLeft_Click);
        // 
        // ancTop
        // 
        this.ancTop.Index = 0;
        this.ancTop.Text = "Top";
        this.ancTop.Click += new System.EventHandler(this.ancTop_Click);
        // 
        // dockFill
        // 
        this.dockFill.Index = 4;
        this.dockFill.Text = "Fill";
        this.dockFill.Click += new System.EventHandler(this.dockFill_Click);
        // 
        // mnuMainMenu
        // 
        this.mnuMainMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
            this.mnuAnchor,
            this.mnuDock});
        // 
        // mnuAnchor
        // 
        this.mnuAnchor.Index = 0;
        this.mnuAnchor.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
            this.ancTop,
            this.ancLeft,
            this.ancBottom,
            this.ancRight,
            this.ancNone,
            this.ancTopLeft,
            this.ancTopRight,
            this.ancBotLeft,
            this.ancBotRight});
        this.mnuAnchor.Text = "Anchor Value";
        // 
        // ancLeft
        // 
        this.ancLeft.Index = 1;
        this.ancLeft.Text = "Left";
        this.ancLeft.Click += new System.EventHandler(this.ancLeft_Click);
        // 
        // ancBottom
        // 
        this.ancBottom.Index = 2;
        this.ancBottom.Text = "Bottom";
        this.ancBottom.Click += new System.EventHandler(this.ancBottom_Click);
        // 
        // ancRight
        // 
        this.ancRight.Index = 3;
        this.ancRight.Text = "Right";
        this.ancRight.Click += new System.EventHandler(this.ancRight_Click);
        // 
        // ancTopRight
        // 
        this.ancTopRight.Index = 6;
        this.ancTopRight.Text = "TopRight";
        this.ancTopRight.Click += new System.EventHandler(this.ancTopRight_Click);
        // 
        // ancBotLeft
        // 
        this.ancBotLeft.Index = 7;
        this.ancBotLeft.Text = "BottomLeft";
        this.ancBotLeft.Click += new System.EventHandler(this.ancBotLeft_Click);
        // 
        // ancBotRight
        // 
        this.ancBotRight.Index = 8;
        this.ancBotRight.Text = "BottomRight";
        this.ancBotRight.Click += new System.EventHandler(this.ancBotRight_Click);
        // 
        // mnuDock
        // 
        this.mnuDock.Index = 1;
        this.mnuDock.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
            this.dockTop,
            this.dockBottom,
            this.dockLeft,
            this.dockRight,
            this.dockFill,
            this.dockNone});
        this.mnuDock.Text = "Dock Value";
        // 
        // dockTop
        // 
        this.dockTop.Index = 0;
        this.dockTop.Text = "Top";
        this.dockTop.Click += new System.EventHandler(this.dockTop_Click);
        // 
        // dockLeft
        // 
        this.dockLeft.Index = 2;
        this.dockLeft.Text = "Left";
        this.dockLeft.Click += new System.EventHandler(this.dockLeft_Click);
        // 
        // dockNone
        // 
        this.dockNone.Index = 5;
        this.dockNone.Text = "None";
        this.dockNone.Click += new System.EventHandler(this.dockNone_Click);
        // 
        // btnTheButton
        // 
        this.btnTheButton.Location = new System.Drawing.Point(8, 16);
        this.btnTheButton.Name = "btnTheButton";
        this.btnTheButton.Size = new System.Drawing.Size(120, 40);
        this.btnTheButton.TabIndex = 0;
        this.btnTheButton.Text = "The Button";
        // 
        // AnchorForm
        // 
        this.ClientSize = new System.Drawing.Size(480, 155);
        this.Controls.Add(this.btnTheButton);
        this.Menu = this.mnuMainMenu;
        this.Name = "AnchorForm";
        this.Text = "Anchoring and Docking Controls";
        this.ResumeLayout(false);
    }


    private System.Windows.Forms.MenuItem dockNone;
    private System.Windows.Forms.MenuItem dockFill;
    private System.Windows.Forms.MenuItem dockRight;
    private System.Windows.Forms.MenuItem dockLeft;
    private System.Windows.Forms.MenuItem dockBottom;
    private System.Windows.Forms.MenuItem dockTop;
    private System.Windows.Forms.MenuItem mnuDock;
    private System.Windows.Forms.Button btnTheButton;
    private System.Windows.Forms.MenuItem ancRight;
    private System.Windows.Forms.MenuItem ancBottom;
    private System.Windows.Forms.MenuItem ancLeft;
    private System.Windows.Forms.MenuItem ancTop;
    private System.Windows.Forms.MenuItem mnuAnchor;
    private System.Windows.Forms.MenuItem ancNone;
    private System.Windows.Forms.MenuItem ancTopLeft;
    private System.Windows.Forms.MenuItem ancBotRight;
    private System.Windows.Forms.MenuItem ancBotLeft;
    private System.Windows.Forms.MenuItem ancTopRight;
    private System.Windows.Forms.MainMenu mnuMainMenu;
    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Application.Run(new AnchorForm());
    }
}

    


Output color by R G B value for a Bitmap

image_pdfimage_print
   
 
using System;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;

public class Analyzer {
    public static void Main() {
        Image sample = new Bitmap("a.jpg");
        MemoryStream buf = new MemoryStream();
        sample.Save(buf, ImageFormat.Bmp);
        byte[] currentImage = buf.GetBuffer();
        
        int[] stats = new int[3];
        for (int i = 0; i < currentImage.Length; ){
            for (int j = 0; j < 3; j++) {
                stats&#91;j&#93; += currentImage&#91;i&#93;;
                ++i;
            }
        }    
        Console.WriteLine("Blue: " + stats&#91;0&#93;);
        Console.WriteLine("Green: " + stats&#91;1&#93;);
        Console.WriteLine("Red: " + stats&#91;2&#93;);
        if ((stats&#91;0&#93; > stats[1]) &amp;&amp; (stats[0] > stats[2]))
            Console.WriteLine("This is a cold picture.");
        if ((stats[1] > stats[0]) &amp;&amp; (stats[1] > stats[2]))
            Console.WriteLine("This is a summer picture.");
        if ((stats[2] > stats[0]) &amp;&amp; (stats[2] > stats[1]))
            Console.WriteLine("This is a fiery picture.");
    }
}

    


XmlDataProvider and XmlNamespaceMapping

image_pdfimage_print


   
  

<Window x:Class="XmlBinding.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:local="clr-namespace:XmlBinding"
  Title="XmlBinding" Height="325" Width="400">
  <Window.Resources>
    <XmlDataProvider x:Key="Company" XPath="/sb:Company/sb:Employee">
      <XmlDataProvider.XmlNamespaceManager>
        <XmlNamespaceMappingCollection>
          <XmlNamespaceMapping Uri="http://company.com" Prefix="sb" />
        </XmlNamespaceMappingCollection>
      </XmlDataProvider.XmlNamespaceManager>

      <x:XData>
        <Company xmlns="http://company.com">
          <Employee Name="A" Age="11" />
          <Employee Name="B" Age="12" />
          <Employee Name="C" Age="38" />
        </Company>
      </x:XData>
    </XmlDataProvider>

    <local:AgeToForegroundConverter x:Key="ageConverter" />
  </Window.Resources>
  <StackPanel DataContext="{StaticResource Company}">
    <ListBox ItemsSource="{Binding}" IsSynchronizedWithCurrentItem="True">
      <ListBox.GroupStyle>
        <x:Static Member="GroupStyle.Default" />
      </ListBox.GroupStyle>
      <ListBox.ItemTemplate>
        <DataTemplate>
          <TextBlock>
            <TextBlock Text="{Binding XPath=@Name}" />
            (age: <TextBlock Text="{Binding XPath=@Age}" Foreground="{Binding XPath=@Age, Converter={StaticResource ageConverter}}" />)
          </TextBlock>
        </DataTemplate>
      </ListBox.ItemTemplate>
    </ListBox>
    <TextBlock>Name:</TextBlock>
    <TextBox Text="{Binding XPath=@Name}" />
    <TextBlock>Age:</TextBlock>
    <TextBox Text="{Binding XPath=@Age}" Foreground="{Binding XPath=@Age, Converter={StaticResource ageConverter}}" />

 </StackPanel>
</Window>
//File:Window.xaml.cs


using System;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Collections.Generic;
using System.Diagnostics;
using System.Collections;
using System.Data;
using System.Data.OleDb;
using System.ComponentModel;
using System.Xml;

namespace XmlBinding {

  public partial class Window1 : Window {

    public Window1() {
      InitializeComponent();

    }

    ICollectionView GetCompanyView() {
      DataSourceProvider provider = (DataSourceProvider)this.FindResource("Company");
      return CollectionViewSource.GetDefaultView(provider.Data);
    }

  }

  public class AgeToForegroundConverter : IValueConverter {
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
      Debug.Assert(targetType == typeof(Brush));

      int age = int.Parse(value.ToString());
      return (age > 25 ? Brushes.Red : Brushes.Black);
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {

      throw new NotImplementedException();
    }
  }

}

   
    
     


XmlDataProvider and ItemsControl

image_pdfimage_print


   
  


<Page x:Class="WpfInteropShortcomings.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WpfInteropShortcomings"
    >
  <Page.Resources>
    <XmlDataProvider x:Key="items" XPath="/Items/Item">
      <x:XData>
        <Items xmlns="">
          <Item Title="A" Target="A.xaml" />
          <Item Title="B" Target="B.xaml" />
          <Item Title="C" Target="C.xaml" />
        </Items>
      </x:XData>
    </XmlDataProvider>
    <DataTemplate x:Key="itemTemplate">
      <TextBlock>
        <Hyperlink NavigateUri="{Binding XPath=@Target}">
          <TextBlock Text="{Binding XPath=@Title}" />
        </Hyperlink>
      </TextBlock>
    </DataTemplate>
  </Page.Resources>

  <ItemsControl DataContext="{StaticResource items}" ItemsSource="{Binding}"
                ItemTemplate="{StaticResource itemTemplate}"
                VerticalAlignment="Top" HorizontalAlignment="Left"/>
</Page>
//File:Window.xaml.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Windows.Interop;
using System.Windows.Forms.Integration;


namespace WpfInteropShortcomings
{
    public partial class Window1 : Page
    {
        public Window1()
        {
            InitializeComponent();

            ElementHost elemHost = new ElementHost();
            elemHost.PropertyMap.Add("Text",
                delegate(object host, string prop, object val)
                {
                    ContentControl c = (ContentControl) elemHost.Child;
                    //c.Content = val;
                    Console.WriteLine(val);
                });
        }
    }
}

   
    
     


Hyperlink and xpath filter for XmlDataProvider

image_pdfimage_print


   
  



<Page x:Class="WpfInteropShortcomings.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WpfInteropShortcomings"
    >
  <Page.Resources>
    <XmlDataProvider x:Key="items" XPath="/Items/Item">
      <x:XData>
        <Items xmlns="">
          <Item Title="A" Target="A.xaml" />
          <Item Title="B" Target="B.xaml" />
          <Item Title="C" Target="C.xaml" />
        </Items>
      </x:XData>
    </XmlDataProvider>
    <DataTemplate x:Key="itemTemplate">
      <TextBlock>
        <Hyperlink NavigateUri="{Binding XPath=@Target}">
          <TextBlock Text="{Binding XPath=@Title}" />
        </Hyperlink>
      </TextBlock>
    </DataTemplate>
  </Page.Resources>

  <ItemsControl DataContext="{StaticResource items}" ItemsSource="{Binding}"
                ItemTemplate="{StaticResource itemTemplate}"
                VerticalAlignment="Top" HorizontalAlignment="Left"/>
</Page>
//File:Window.xaml.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Windows.Interop;
using System.Windows.Forms.Integration;


namespace WpfInteropShortcomings
{
    public partial class Window1 : Page
    {
        public Window1()
        {
            InitializeComponent();

            ElementHost elemHost = new ElementHost();
            elemHost.PropertyMap.Add("Text",
                delegate(object host, string prop, object val)
                {
                    ContentControl c = (ContentControl) elemHost.Child;
                    //c.Content = val;
                    Console.WriteLine(val);
                });
        }
    }
}

   
    
     


Load XmlDocument to XmlDataProvider

image_pdfimage_print


   
  

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfApplication1"
    Title="Window1" Height="400" Width="600" Loaded="Window_Loaded" Name="window">
    <Window.Resources>
        <XmlDataProvider x:Key="xaml" />
    </Window.Resources>
    <StackPanel>
        <TreeView Name="treeView1" ItemsSource="{Binding Source={StaticResource xaml}, XPath=*}">
            <TreeView.ItemTemplate>
                <HierarchicalDataTemplate ItemsSource="{Binding XPath=*}">
                    <TextBlock Text="{Binding Path=Name}" />
                </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>
        </TreeView>
        <TextBox Text="{Binding ElementName=treeView1, Path=SelectedItem.OuterXml, Mode=OneWay}" TextWrapping="Wrap" />
    </StackPanel>
</Window>
//File:Window.xaml.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO;
using System.Windows.Markup;
using System.Xml;

namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            string xaml = XamlWriter.Save(this);

            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xaml);

            XmlDataProvider provider = (XmlDataProvider)FindResource("xaml");
            provider.Document = doc;
            provider.Refresh();
        }
    }
}

   
    
     


Get XmlElement from Bounded view

image_pdfimage_print


   
  
<Window x:Class="WpfApplication1.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:local="clr-namespace:WpfApplication1"
  Title="XmlBinding" Height="325" Width="400">
  <Window.Resources>
    <local:AgeToForegroundConverter x:Key="ageConverter" />
  </Window.Resources>
  <StackPanel Name="stackPanel">
    <ListBox ItemsSource="{Binding}" IsSynchronizedWithCurrentItem="True">
      <ListBox.GroupStyle>
        <x:Static Member="GroupStyle.Default" />
      </ListBox.GroupStyle>
      <ListBox.ItemTemplate>
        <DataTemplate>
          <TextBlock>
            <TextBlock Text="{Binding XPath=@Name}" />
            (age: <TextBlock Text="{Binding XPath=@Age}" Foreground="{Binding XPath=@Age, Converter={StaticResource ageConverter}}" />)
          </TextBlock>
        </DataTemplate>
      </ListBox.ItemTemplate>
    </ListBox>
    <TextBlock>Name:</TextBlock>
    <TextBox Text="{Binding XPath=@Name}" />
    <TextBlock>Age:</TextBlock>
    <TextBox Text="{Binding XPath=@Age}" Foreground="{Binding XPath=@Age, Converter={StaticResource ageConverter}}" />
    <Button Name="birthdayButton">Birthday</Button>
  </StackPanel>
</Window>
//File:Window.xaml.cs
using System;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Collections.Generic;
using System.Diagnostics;
using System.Collections;
using System.Data;
using System.Data.OleDb;
using System.ComponentModel;
using System.Xml;

namespace WpfApplication1
{
    public class AgeToForegroundConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            Debug.Assert(targetType == typeof(Brush));
            int age = int.Parse(value.ToString());
            return (age > 60 ? Brushes.Red : Brushes.Black);
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }


    public partial class Window1 : Window
    {
        XmlDocument doc;
        public Window1()
        {
            InitializeComponent();

            doc = new XmlDocument();
            doc.LoadXml(@"<Company xmlns=&#039;http://company.com&#039;>
  <Employee Name=&#039;A&#039; Age=&#039;61&#039; />
  <Employee Name=&#039;B&#039; Age=&#039;72&#039; />
  <Employee Name=&#039;C&#039; Age=&#039;38&#039; />
</Company>");

            XmlNamespaceManager manager = new XmlNamespaceManager(doc.NameTable);
            manager.AddNamespace("sb", "http://company.com");
            Binding.SetXmlNamespaceManager(stackPanel, manager);

            Binding b = new Binding();
            b.XPath = "/sb:Company/sb:Employee";
            b.Source = doc;
            stackPanel.SetBinding(StackPanel.DataContextProperty, b);

            this.birthdayButton.Click += birthdayButton_Click;

        }

        void birthdayButton_Click(object sender, RoutedEventArgs e) {
      ICollectionView view = CollectionViewSource.GetDefaultView(stackPanel.DataContext);

      XmlElement person = (XmlElement)view.CurrentItem;
      person.SetAttribute("Age",(int.Parse(person.Attributes["Age"].Value) + 1).ToString());
      Console.WriteLine(person.Attributes["Name"].Value);
      Console.WriteLine(person.Attributes["Age"].Value);
    }
    }
}