This topic has not yet been rated - Rate this topic

ComponentCommands Class

Provides a standard set of component-related commands, which have predefined key input gestures and RoutedUICommand::Text properties.

System::Object
  System.Windows.Input::ComponentCommands

Namespace:  System.Windows.Input
Assembly:  PresentationCore (in PresentationCore.dll)
public ref class ComponentCommands abstract sealed

The ComponentCommands type exposes the following members.

  NameDescription
Public propertyStatic memberExtendSelectionDownGets the value that represents the Extend Selection Down command.
Public propertyStatic memberExtendSelectionLeftGets the value that represents the Extend Selection Left command.
Public propertyStatic memberExtendSelectionRightGets the value that represents the Extend Selection Right command.
Public propertyStatic memberExtendSelectionUpGets the value that represents the Extend Selection Up command.
Public propertyStatic memberMoveDownGets the value that represents the Move Down command.
Public propertyStatic memberMoveFocusBackGets the value that represents the Move Focus Back command.
Public propertyStatic memberMoveFocusDownGets the value that represents the Move Focus Down command.
Public propertyStatic memberMoveFocusForwardGets the value that represents the Move Focus Forward command.
Public propertyStatic memberMoveFocusPageDownGets the value that represents the Move Focus Page Down command.
Public propertyStatic memberMoveFocusPageUpGets the value that represents the Move Focus Page Up command.
Public propertyStatic memberMoveFocusUpGets the value that represents the Move Focus Up command.
Public propertyStatic memberMoveLeftGets the value that represents the Move Left command.
Public propertyStatic memberMoveRightGets the value that represents the Move Right command.
Public propertyStatic memberMoveToEndGets the value that represents the Move To End command.
Public propertyStatic memberMoveToHomeGets the value that represents the Move To Home command.
Public propertyStatic memberMoveToPageDownGets the value that represents the Move To Page Down command.
Public propertyStatic memberMoveToPageUpGets the value that represents the Move To Page Up command.
Public propertyStatic memberMoveUpGets the value that represents the Move Up command.
Public propertyStatic memberScrollByLineGets the value that represents the Scroll By Line command.
Public propertyStatic memberScrollPageDownGets the value that represents the Scroll Page Down command.
Public propertyStatic memberScrollPageLeftGets the value that represents the Scroll Page Left command.
Public propertyStatic memberScrollPageRightGets the value that represents the Scroll Page Right command.
Public propertyStatic memberScrollPageUpGets the value that represents the Scroll Page Up command.
Public propertyStatic memberSelectToEndGets the value that represents the Select To End command.
Public propertyStatic memberSelectToHomeGets the value that represents the Select To Home command.
Public propertyStatic memberSelectToPageDownGets the value that represents the Select To Page Down command.
Public propertyStatic memberSelectToPageUpGets the value that represents the Select To Page Up command.
Top

The commands in the ComponentCommands class and commands in the other command library classes, such as ApplicationCommands and NavigationCommands, are intended to represent a set of common commands that application programmers encounter frequently. The commands only represent the instance of the RoutedCommand and not the implementation logic for the command. The implementation logic is bound to the command via a CommandBindings. For example, if the MoveLeft command is executed on a control (the command target), the logic that performs the MoveLeft command may not be provided by the command target, so the application writer is responsible for writing the logic that determines how the command target handles the command.

Many controls do provide implementation logic, though, for many of the commands in the command library. For example, the TextBox class provides logic for the Paste command, Cut command, Copy command, Undo command, and Redo command. See the class documentation for particular control classes for more information.

For more information on commands and commanding, see Commanding Overview.

The following example shows how to hook up a RoutedCommand to a Control which has built in support for the command. For a complete sample which hooks up commands to multiple sources, see the Create a Custom RoutedCommand Sample sample.

Windows Presentation Foundation (WPF) provides a library of common commands which application programmers encounter regularly. The classes which comprise the command library are: ApplicationCommands, ComponentCommands, NavigationCommands, MediaCommands, and EditingCommands.

The static RoutedCommand objects which make up these classes do not supply command logic. The logic for the command is associated with the command with a CommandBinding. Some controls have built in CommandBindings for some commands. This mechanism allows the semantics of a command to stay the same, while the actual implementation is can change. A TextBox, for example, handles the Paste command differently than a control designed to support images, but the basic idea of what it means to paste something stays the same. The command logic cannot be supplied by the command, but rather must be supplied by the control or the application.

Many controls in WPF do have built in support for some of the commands in the command library. TextBox, for example, supports many of the application edit commands such as Paste, Copy, Cut, Redo, and Undo. The application developer does not have to do anything special to get these commands to work with these controls. If the TextBox is the command target when the command is executed, it will handle the command using the CommandBinding that is built into the control.

The following shows how to use a MenuItem as the command source for the Paste command, where a TextBox is the target of the command. All the logic that defines how the TextBox performs the paste is built into the TextBox control.

A MenuItem is created and it's Command property is set to the Paste command. The CommandTarget is not explicitly set to the TextBox object. When the CommandTarget is not set, the target for the command is the element which has keyboard focus. If the element which has keyboard focus does not support the Paste command or cannot currently execute the paste command (the clipboard is empty, for example) then the MenuItem would be grayed out.

<Window x:Class="SDKSamples.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MenuItemCommandTask"
    >
    <DockPanel>
      <Menu DockPanel.Dock="Top">
        <MenuItem Command="ApplicationCommands.Paste" Width="75" />
      </Menu>
      <TextBox BorderBrush="Black" BorderThickness="2" Margin="25"
               TextWrapping="Wrap">
        The MenuItem will not be enabled until
        this TextBox gets keyboard focus  
      </TextBox>
    </DockPanel>
</Window>
No code example is currently available or this language may not be supported.

More Code

How to: Hook Up a Command to a Control with No Command SupportThe following example shows how to hook up a RoutedCommand to a Control which does not have built in support for the command. For a complete sample which hooks up commands to multiple sources, see the Create a Custom RoutedCommand Sample sample.

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.