WPF C# Tutorial

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:custom="clr-namespace:WpfApplication1"
    Title="Custom RoutedCommand Sample"
    Name="RootWindow" Height="500" Width="600"
    Focusable="True">
  
                        Executed="ColorCmdExecuted"
                    CanExecute="ColorCmdCanExecute"/>
  

  
    
      
        
      
    
                Height="165" Width="250" DockPanel.Dock="Top">
      
        a
        
        b
        
        c
        
      
    
    
      
        
          
            
          

          
                            CommandParameter="ButtonOne"
                  CommandTarget="{Binding ElementName=FirstStackPanel}" 
                  Content="CommandTarget = FristStackPanel" />
        
      
      
        
          
        
      
    
  


//File:Window.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Input;
namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public static RoutedCommand ColorCmd = new RoutedCommand();
        public Window1()
        {
            InitializeComponent();
        }
        private void ColorCmdExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            Panel target = e.Source as Panel;
            if (target != null)
            {
                if (target.Background == Brushes.AliceBlue)
                {
                    target.Background = Brushes.Red;
                }
                else
                {
                    target.Background = Brushes.AliceBlue;
                }
            }
        }
        private void ColorCmdCanExecute(object sender, CanExecuteRoutedEventArgs e)
        {
            if (e.Source is Panel)
            {
                e.CanExecute = true;
            }
            else
            {
                e.CanExecute = false;
            }
        }
    }
}