Button

The Button control is a ContentControl which reacts to pointer presses.

A button notifies clicks by raising the Click event. A click is distinct from a PointerDown event in that it is raised by default when the button is pressed and then released (although this behavior can be changed by setting the ClickMode property).

Alternatively an instance of ICommand can be assigned or bound to the button's Command property. This command will be executed when the button is clicked. For more information see binding to commands.

Click is just one of several events that Buttons have. Another example is PointerEnter or PointerLeave. You can get the full list of Button Events here.

The Button control's full documentation can be found here

Subclasses

  1. ToggleButton - Toggles between checked and unchecked on click.

Common Properties

Property
Description

ClickMode

Describes how the button should react to clicks

Command

A command to be invoked when the button is clicked

CommandParameter

A parameter to be passed to Command

Content

The content to display in the button

IsDefault

When set, pressing the enter key clicks the button even if not focused

IsPressed

Set when the button is depressed

Pseudoclasses

Pseudoclass
Description

:pressed

Set when the button is depressed

API Reference

Button

Source code

Button.cs

Examples

Basic button

produces following output with Windows 10\

Basic button

Colored button

produces following output with Windows 10\

Colored button

Play button

Toggles between a "Play" icon and a "Pause" icon on click.

Binding to a View Model Command

It is possible to bind a view model command to a simple method or with a ReactiveCommand. There are lots of advantages to the ReactiveCommand binding for all but the simplest user interfaces such as being able to pass an IObservable<bool> object in to have it dynamically calculate state. Both methods are displayed below. First the "simple" method binding:

The Code in the bound View Model for the above will either look like:

If using ReactiveCommands:

Binding to Events

The corresponding C# code in the View's cs file:

最后更新于

这有帮助吗?