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