Create a custom RoutedCommand, the CommandBinding objects, and the KeyBinding objects in code. : RoutedCommand « Windows Presentation Foundation « VB.Net Tutorial

Home
VB.Net Tutorial
1.Language Basics
2.Data Type
3.Operator
4.Statements
5.Date Time
6.Class Module
7.Development
8.Collections
9.Generics
10.Attributes
11.Event
12.LINQ
13.Stream File
14.GUI
15.GUI Applications
16.Windows Presentation Foundation
17.2D Graphics
18.I18N Internationlization
19.Reflection
20.Regular Expressions
21.Security
22.Socket Network
23.Thread
24.Windows
25.XML
26.Database ADO.net
27.Design Patterns
VB.Net
VB.Net by API
VB.Net Tutorial » Windows Presentation Foundation » RoutedCommand 
16.92.1.Create a custom RoutedCommand, the CommandBinding objects, and the KeyBinding objects in code.
<Window x:Class="WpfApplication1.Window1"
    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">
  <Window.CommandBindings>
    <CommandBinding Command="{x:Static custom:Window1.ColorCmd}"
                    Executed="ColorCmdExecuted"
                    CanExecute="ColorCmdCanExecute"/>
  </Window.CommandBindings>
  <DockPanel>
    <Menu DockPanel.Dock="Top" Height="25">
      <MenuItem Header="Commands">
        <MenuItem Header="Color Command" Command="{x:Static custom:Window1.ColorCmd}" />
      </MenuItem>
    </Menu>
    <Border BorderBrush="Black" BorderThickness="1" Margin="10"
            Height="165" Width="250" DockPanel.Dock="Top">
      <TextBlock TextWrapping="Wrap" Margin="3">
        a
        <LineBreak/>
        b
        <LineBreak/>
        <LineBreak/>
        c
        <LineBreak/>
      </TextBlock>
    </Border>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" DockPanel.Dock="Bottom">
      <Border BorderBrush="Black" BorderThickness="1" Height="200" Width="200">
        <StackPanel Name="FirstStackPanel" Background="AliceBlue" Focusable="True">
          <StackPanel.CommandBindings>
            <CommandBinding Command="{x:Static custom:Window1.ColorCmd}" Executed="ColorCmdExecuted" CanExecute="ColorCmdCanExecute"/>
          </StackPanel.CommandBindings>

          <Label>StackPanel</Label>

          <Button Command="{x:Static custom:Window1.ColorCmd}"
                  CommandParameter="ButtonOne"
                  CommandTarget="{Binding ElementName=FirstStackPanel}" 
                  Content="CommandTarget = FristStackPanel" />
        </StackPanel>
      </Border>
      <Border BorderBrush="Black" BorderThickness="1" Height="200" Width="200">
        <StackPanel Background="AliceBlue" Focusable="True">
          <Label>Second StackPanel</Label>
        </StackPanel>
      </Border>
    </StackPanel>
  </DockPanel>
</Window>


//File:Window.xaml.vb

Imports System
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Imports System.Windows.Input


Namespace WpfApplication1
  Public Partial Class Window1
    Inherits Window
    Public Shared ColorCmd As New RoutedCommand()
    Public Sub New()
      InitializeComponent()
    End Sub
    Private Sub ColorCmdExecuted(sender As Object, e As ExecutedRoutedEventArgs)
      Dim target As Panel = TryCast(e.Source, Panel)
      If target IsNot Nothing Then
        If target.Background Is Brushes.AliceBlue Then
          target.Background = Brushes.Red
        Else
          target.Background = Brushes.AliceBlue
        End If
      End If
    End Sub
    Private Sub ColorCmdCanExecute(sender As Object, e As CanExecuteRoutedEventArgs)
      If TypeOf e.Source Is Panel Then
        e.CanExecute = True
      Else
        e.CanExecute = False
      End If
    End Sub
  End Class
End Namespace
WPF Create A Custom Routed Command The Command Binding Objects And The Key Binding Objects In Code
16.92.RoutedCommand
16.92.1.Create a custom RoutedCommand, the CommandBinding objects, and the KeyBinding objects in code.Create a custom RoutedCommand, the CommandBinding objects, and the KeyBinding objects in code.
16.92.2.Convert RoutedEventArgs.OriginalSource to event senderConvert RoutedEventArgs.OriginalSource to event sender
16.92.3.RoutedEvents: Button Mouse Up EventRoutedEvents: Button Mouse Up Event
16.92.4.RoutedEvents: Drag And DropRoutedEvents: Drag And Drop
16.92.5.RoutedEvents: Focus eventRoutedEvents: Focus event
16.92.6.RoutedEvents: Key ModifiersRoutedEvents: Key Modifiers
16.92.7.RoutedEvents: Key Press EventsRoutedEvents: Key Press Events
16.92.8.RoutedEvents: Mouse PositionRoutedEvents: Mouse Position
16.92.9.Bubble routed events, and write an event handler for a routed event.Bubble routed events, and write an event handler for a routed event.
16.92.10.Get RoutedEvent NameGet RoutedEvent Name
16.92.11.Create RoutedCommand from InputGestureCollectionCreate RoutedCommand from InputGestureCollection
16.92.12.RoutedEvents Only NumbersRoutedEvents Only Numbers
16.92.13.Routed Event DemoRouted Event Demo
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.