Button
Control类
字段
名称 | 备注 | 权限 |
---|---|---|
BackgroundProperty | 标识 Background 依赖项属性 | public |
BorderBrushProperty | 标识 BorderBrush 依赖项属性 | public |
BorderThicknessProperty | 标识 BorderThickness 依赖项属性 | public |
FontFamilyProperty | 标识 FontFamily 依赖项属性 | public |
FontSizeProperty | 标识 FontSize 依赖项属性 | public |
FontStretchProperty | 标识 FontStretch 依赖项属性 | public |
FontStyleProperty | 标识 FontStyle 依赖项属性 | public |
FontWeightProperty | 标识 FontWeight 依赖项属性 | public |
ForegroundProperty | 标识 Foreground 依赖项属性 | public |
HorizontalContentAlignmentProperty | 标识 HorizontalContentAlignment 依赖项属性 | public |
IsTabStopProperty | 标识 IsTabStop 依赖项属性 | public |
MouseDoubleClickEvent | 标识 MouseDoubleClick 路由事件 | public |
PaddingProperty | 标识 Padding 依赖项属性 | public |
PreviewMouseDoubleClickEvent | 标识 PreviewMouseDoubleClick 路由事件 | public |
TabIndexProperty | 标识 TabIndex 依赖项属性 | public |
TemplateProperty | 标识 Template 依赖项属性 | public |
VerticalContentAlignmentProperty | 标识 VerticalContentAlignment 依赖项属性 | public |
属性
名称 | 备注 | 权限 |
---|---|---|
Background | 获取或设置一个用于描述控件背景的画笔 | public |
BorderBrush | 获取或设置一个用于描述控件的边框背景的画笔 | public |
BorderThickness | 获取或设置控件的边框宽度 | public |
FontFamily | 获取或设置控件的字体系列 | public |
FontSize | 获取或设置字号 | public |
FontStretch | 获取或设置字体在屏幕上紧缩或加宽的程度 | public |
FontStyle | 获取或设置字体样式 | public |
FontWeight | 获取或设置指定字体的粗细 | public |
Foreground | 获取或设置一个用于描述前景色的画笔 | public |
HandlesScrolling | 获取一个值,该值指示控件是否支持滚动 | protected |
HorizontalContentAlignment | 获取或设置控件内容的水平对齐方式 | public |
IsTabStop | 获取或设置一个值,该值指示是否将某个控件包含在 Tab 导航中 | public |
Padding | 获取或设置控件内部的填充边距 | public |
TabIndex | 获取或设置一个值,该值决定在用户使用 Tab 键在控件中导航时元素接收焦点的顺序 | public |
Template | 获取或设置控件模板 | public |
VerticalContentAlignment | 获取或设置控件内容的垂直对齐方式 | public |
方法
名称 | 备注 | 权限 |
---|---|---|
ArrangeOverride | 调用以排列 Control 对象的内容并调整其大小 | protected |
MeasureOverride | 调用以重新测量控件 | protected |
OnMouseDoubleClick | 引发 MouseDoubleClick 路由事件 | protected |
OnPreviewMouseDoubleClick | 引发 PreviewMouseDoubleClick 路由事件 | protected |
OnTemplateChanged | 在控件模板发生更改时调用 | protected |
ToString | 返回 Control 对象的字符串表示形式 | public |
事件
名称 | 备注 | 权限 |
---|---|---|
MouseDoubleClick | 在双击或多次单击鼠标按钮时发生 | public |
PreviewMouseDoubleClick | 在用户单击鼠标按钮两次或更多次时发生 | public |
ContentControl类
表示用户界面 (UI) 元素的基类,这些元素使用 ControlTemplate 来定义其外观。
ContentControl可以包含任何类型的公共语言运行时对象 (例如字符串或 DateTime 对象) 或 UIElement 对象 (如 Rectangle 或 Panel) 。 这使你能够向控件(例如Button和CheckBox)添加丰富的内容
ContentControl具有有限的默认样式。 如果要增强控件的外观,可以创建新的 DataTemplate 。 有关详细信息,请参阅 数据模板化概述。 另一种典型方案是使用 ContentControl 来显示有关控件中选定项的详细信息 ItemsControl 。 有关详细信息,请参阅 如何:绑定到集合并基于选择显示信息。
此控件的依赖属性可能由控件的默认样式设置。 如果按默认样式设置属性,则当控件出现在应用程序中时,属性可能会更改为默认值。 默认样式取决于应用程序运行时使用的桌面主题。 有关详细信息,请参阅 默认的 WPF 主题。
字段
名称 | 备注 | 权限 |
---|---|---|
ContentProperty | 标识 Content 依赖项属性 | public |
ContentStringFormatProperty | 标识 ContentStringFormat 依赖项属性 | public |
ContentTemplateProperty | 标识 ContentTemplate 依赖项属性 | public |
ContentTemplateSelectorProperty | 标识 ContentTemplateSelector 依赖项属性 | public |
HasContentProperty | 标识 HasContent 依赖项属性 | public |
属性
名称 | 备注 | 权限 |
---|---|---|
Content | 获取或设置 ContentControl 的内容 | public |
ContentStringFormat | 获取或设置一个撰写字符串,该字符串指定如果 Content 属性显示为字符串,应如何设置该属性的格式 | public |
ContentTemplate | 获取或设置用于显示 ContentControl 内容的数据模板 | public |
ContentTemplateSelector | 获取或设置一个模板选择器,以使应用程序编写器能够提供自定义模板选择逻辑 | public |
HasContent | 获取一个值,该值指示 ContentControl 是否包含内容 | public |
LogicalChildren | 获取内容控件的逻辑子元素的枚举数 | protected |
方法
名称 | 备注 | 权限 |
---|---|---|
AddChild | 将指定对象作为 ContentControl 的子级添加 | protected |
AddText | 将指定文本字符串添加到 ContentControl 中 | protected |
OnContentChanged | 当 Content 属性更改时调用 | protected |
OnContentStringFormatChanged | 当 ContentStringFormat 属性更改时发生 | protected |
OnContentTemplateChanged | 当 ContentTemplate 属性更改时调用 | protected |
OnContentTemplateSelectorChanged | 当 ContentTemplateSelector 属性更改时调用 | protected |
ShouldSerializeContent | 指示是否应使 Content 属性持久化 | public |
接口
名称 | 备注 |
---|---|
IAddChild.AddChild | 此类型或成员支持 Windows Presentation Foundation (WPF) 基础结构,并且不应在代码中直接使用 |
IAddChild.AddText | 此类型或成员支持 Windows Presentation Foundation (WPF) 基础结构,并且不应在代码中直接使用 |
ButtonBase
表示所有 Button 控件的基类。
Click 处理在用户单击时响应 ButtonBase 的事件。 用户可以通过使用 AccessText 或在控件具有焦点时按 enter 键或空格键来引发 Click 事件。 当用户按空格键时,控件将设置 IsPressed 为 true
并捕获鼠标。 因此,控件将引发鼠标事件,例如 MouseEnter 和 IsMouseDirectlyOverChanged 。 请注意,使用 AccessText 或 ENTER 不会更改 IsPressed 或捕获鼠标,但会引发 Click 事件。
将 ButtonBase AcceptsReturn 附加属性设置为 true
。
ButtonBase 将 IsInputMethodEnabled 属性设置为 false
。
ButtonBase是 ContentControl ,这意味着它可以包含任何类型的单个对象 (例如字符串、图像或面板) 。 有关更多信息,请参见 ContentControl 类。
字段
名称 | 备注 | 权限 |
---|---|---|
ClickEvent | 标识 Click 路由事件 | public |
ClickModeProperty | 标识 ClickMode 依赖项属性 | public |
CommandParameterProperty | 标识 CommandParameter 依赖项属性 | public |
CommandProperty | 标识路由的 Command 依赖属性 | public |
CommandTargetProperty | 标识 CommandTarget 依赖项属性 | public |
IsPressedProperty | 标识 IsPressed 依赖项属性 | public |
属性
名称 | 备注 | 权限 |
---|---|---|
ClickMode | 获取或设置 Click 事件何时发生 | public |
Command | 获取或设置在按下按钮时调用的命令 | public |
CommandParameter | 获取或设置要传递给 Command 属性的参数 | public |
CommandTarget | 获取或设置要引发指定命令的元素 | public |
IsEnabledCore | 获取 IsEnabled 属性的值 | protected |
IsPressed | 获取一个值,该值指示 ButtonBase 当前是否已被激活 | public |
方法
名称 | 备注 | 权限 |
---|---|---|
OnAccessKey | 在调用此控件的 AccessKey 时响应 | protected |
OnClick | 引发 Click 路由事件 | protected |
OnIsPressedChanged | 当 IsPressed 属性更改时调用 | protected |
OnKeyDown | 为在此控件有焦点的情况下用户按任意键时发生的 KeyDown 路由事件提供类处理 | protected |
OnKeyUp | 为在此控件有焦点的情况下用户释放任意键时发生的 KeyUp 路由事件提供类处理 | protected |
OnLostKeyboardFocus | 在元素失去键盘焦点时调用 | protected |
OnLostMouseCapture | 提供路由事件 LostMouseCapture 的类处理,该事件在此控件不再接收鼠标事件消息时发生 | protected |
OnMouseEnter | 为当鼠标进入此控件时发生的 ClickMode 路由事件提供类处理 | protected |
OnMouseLeave | 为当鼠标离开元素时发生的 MouseLeave 路由事件提供类处理 | protected |
OnMouseLeftButtonDown | 为鼠标指针位于此控件上并按下鼠标左键时发生的 MouseLeftButtonDown 路由事件提供类处理 | protected |
OnMouseLeftButtonUp | 为鼠标指针位于此控件上并释放鼠标左键时发生的 MouseLeftButtonUp 路由事件提供类处理 | protected |
OnMouseMove | 提供当鼠标指针位于此元素上并且移动鼠标指针发生的MouseMove 路由事件的类处理 | protected |
OnRenderSizeChanged | 当控件的呈现大小更改时调用 | protected |
事件
名称 | 备注 | 权限 |
---|---|---|
Click | 在单击 Button 时发生 | public |
Button
表示 Windows 按钮控件,该按钮对 Click 事件做出反应。
Button类直接从 System.Windows.Controls.Primitives.ButtonBase 类继承。
内容模型: Button 派生自 ContentControl 。 它的内容属性为 Content 。
ButtonBase.Click 处理在用户单击时响应Button 的事件 。
OnMouseLeftButtonDown方法将 MouseLeftButtonDown 事件标记为已处理。 若要响应 MouseLeftButtonDown 事件,请将事件处理程序附加到 PreviewMouseLeftButtonDown 事件,或将 AddHandler(RoutedEvent, Delegate, Boolean) handledEventsToo
设置为时调用 true
。
若要对多个控件应用相同的属性设置 Button ,请使用 Style 属性。 您可以修改 ControlTemplate 默认值,为控件指定独特的外观。 有关创 ControlTemplate 建的详细信息,请参阅 通过创建 System.windows.controls.controltemplate> 自定义现有控件的外观。 若要查看特定于的部分和状态,请 Button 参阅 按钮样式和模板。
此控件的依赖属性可能由控件的默认样式设置。 如果按默认样式设置属性,则当控件出现在应用程序中时,属性可能会更改为默认值。 默认样式取决于应用程序运行时使用的桌面主题。 有关详细信息,请参阅 默认的 WPF 主题。
只有视觉对象属性已存在于控件的默认模板中并且已使用 TemplateBinding 设置时,设置该属性才有效。 在通过创建 ControlTemplate 自定义现有控件的外观一文的更改控件的视觉结构部分可以找到视觉属性列表。
字段
名称 | 备注 | 权限 |
---|---|---|
IsCancelProperty | 标识 IsCancel 依赖项属性 | public |
IsDefaultedProperty | 标识 IsDefaulted 依赖项属性 | public |
IsDefaultProperty | 标识 IsDefault 依赖项属性 | public |
属性
名称 | 备注 | 权限 |
---|---|---|
IsCancel | 获取或设置一个值,该值指示 Button 是否是一个“取消”按钮。 用户可以通过按 ESC 键来激活 Cancel 按钮。 | public |
IsDefault | 获取或设置一个值,该值指示 Button 是否是一个默认按钮。 用户可以通过按 ENTER 键调用默认按钮。 | public |
IsDefaulted | 获取或设置一个值,该值指示 Button 是否是在用户按下 ENTER 键时所激活的按钮。 | public |
方法
名称 | 备注 | 权限 |
---|---|---|
OnClick | 单击 Button 时调用 | protected |
OnCreateAutomationPeer | ButtonAutomationPeer为此控件创建一个适用于 WPF 基础结构的一部分 | protected |
ButtonBase.ClickMode
public System.Windows.Controls.ClickMode ClickMode { get; set; }
获取或设置 Click 事件何时发生,默认值是 Release。
public enum ClickMode:
Hover | 2 | 指定当鼠标悬停在控件上时应引发 Click 事件。 |
Press | 1 | 指定当按下按钮时应引发 Click 事件。 |
Release | 0 | 指定当按下和释放按钮时应引发 Click 事件。 |
ButtonBase.Command
public System.Windows.Input.ICommand Command { get; set; }
获取或设置在按下按钮时调用的命令。默认值是 null
。
XAML 属性用法
<object Command="commandName"/>
例:
<Window
x:Class="ButtonDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ButtonDemo"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="800"
Height="450"
mc:Ignorable="d">
<Window.CommandBindings>
<CommandBinding Command="ApplicationCommands.Properties" Executed="MyCommand"/>
</Window.CommandBindings>
<Grid x:Name="grid1">
<Button x:Name="Btn1"
BorderBrush="Black" BorderThickness="1"
Width="200"
Height="50"
ClickMode="Press"
Content="_Btn1"
Command="ApplicationCommands.Properties"
CommandTarget="{Binding ElementName=grid1}" />
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace ButtonDemo
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void MyCommand(object sender, RoutedEventArgs e)
{
MessageBox.Show("sender:"+sender.ToString()+ "\ne.Source:"+e.Source.ToString()+ "\nOriginalSource:" + e.OriginalSource.ToString());
}
}
}
ButtonBase.CommandParameter
public object CommandParameter { get; set; }
获取或设置要传递给 Command 属性的参数。
XAML 属性用法
<object CommandParameter="commandParameter" />
<Window
x:Class="ButtonDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ButtonDemo"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="800"
Height="450"
mc:Ignorable="d">
<Grid x:Name="grid1">
<Grid.CommandBindings>
<CommandBinding Command="ApplicationCommands.Properties" Executed="MyCommand"/>
</Grid.CommandBindings>
<Button x:Name="Btn1"
BorderBrush="Black" BorderThickness="1"
Width="200"
Height="50"
ClickMode="Press"
Content="_Btn1"
Command="ApplicationCommands.Properties"
CommandParameter="传递参数"
CommandTarget="{Binding ElementName=Btn1}"
IsCancel="False"
IsDefault="False"
/>
<!-- IsEnabledCore="True" Click="Button_Click" IsEnabledCore IsDefaulted -->
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace ButtonDemo
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void MyCommand(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show("sender:"+sender.ToString()+ "\ne.Source:" + e.Source.ToString()+ "\nOriginalSource:" + e.OriginalSource.ToString()+ "\nCommandParameter:"+e.Parameter.ToString());
}
}
}
ButtonBase.CommandTarget
public System.Windows.IInputElement CommandTarget { get; set; }
获取或设置要引发指定命令的元素。
XAML 属性用法
<ButtonBase CommandTarget="{Binding ElementName= elementName }"/>
上述代码更改:CommandTarget="{Binding ElementName=Btn1}"
上述代码更改,并移动到Grid下:
<Grid.CommandBindings>
<CommandBinding Command="ApplicationCommands.Properties" Executed="MyCommand"/>
</Grid.CommandBindings>
C#
<Window
x:Class="ButtonDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ButtonDemo"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="800"
Height="450"
mc:Ignorable="d">
<Grid x:Name="grid1">
<Button x:Name="Btn1"
BorderBrush="Black" BorderThickness="1"
Width="200"
Height="50"
ClickMode="Press"
Content="_Btn1"
Command="ApplicationCommands.Help"
CommandParameter="传递参数"
CommandTarget="{Binding ElementName=Btn1}"
IsCancel="False"
IsDefault="False"
/>
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace ButtonDemo
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
CommandBinding customCommandBinding = new CommandBinding(ApplicationCommands.Help, MyCommand, null);
// attach CommandBinding to root window
(this.Content as Grid).CommandBindings.Add(customCommandBinding);
}
private void MyCommand(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show("sender:"+sender.ToString()+ "\ne.Source:" + e.Source.ToString()+ "\nOriginalSource:" + e.OriginalSource.ToString()+ "\nCommandParameter:"+e.Parameter.ToString());
}
}
}
ButtonBase.IsPressed
public bool IsPressed { get; protected set; }
获取一个值,该值指示 ButtonBase 当前是否已被激活。
示例
<Style x:Key="Triggers" TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property = "Background" Value="Red"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property = "Foreground" Value="Green"/>
</Trigger>
</Style.Triggers>
</Style>
ButtonBase.OnAccessKey(AccessKeyEventArgs)
protected override void OnAccessKey (System.Windows.Input.AccessKeyEventArgs e);
在调用此控件的 AccessKey 时响应。
ButtonBase.OnClick
protected virtual void OnClick ();
引发 Click 路由事件。
控件 Click 通过调用来引发事件 RaiseEvent 。 有关详细信息,请参阅路由事件概述。
ButtonBase.OnIsPressedChanged(DependencyPropertyChangedEventArgs)
protected virtual void OnIsPressedChanged (System.Windows.DependencyPropertyChangedEventArgs e);
当 IsPressed 属性更改时调用。
ButtonBase.OnKeyDown(KeyEventArgs)
protected override void OnKeyDown (System.Windows.Input.KeyEventArgs e);
为在此控件有焦点的情况下用户按任意键时发生的 KeyDown 路由事件提供类处理。
此实现通过将事件数据的Handled属性设置为true把KeyDown事件标记为handled,当ClickMode未设置为Hover并且满足以下情况之一时:
- 用户按空格键。
- 用户按 ENTER 键, 此控件的AcceptsReturn为
true
。
在所有其他情况下,此实现不会更改KeyDown 事件数据的 Handled 状态(Handled 属性)。
如果重写 OnKeyDown(KeyEventArgs) ,请始终在实现中调用基实现 OnKeyDown(KeyEventArgs) 。
ButtonBase.OnKeyUp(KeyEventArgs)
protected override void OnKeyUp (System.Windows.Input.KeyEventArgs e);
为在此控件有焦点的情况下用户释放任意键时发生的 KeyUp 路由事件提供类处理。
This implementation marks the KeyUp event as handled by setting the Handled property of the event data to true
when the user releases the SPACEBAR. Otherwise, this implementation does not change the handled state (the Handled property) of the KeyUp event data.
如果重写 OnKeyUp(KeyEventArgs) ,请始终在实现中调用基实现 OnKeyUp(KeyEventArgs) 。
ButtonBase.OnLostKeyboardFocus(KeyboardFocusChangedEventArgs)
protected override void OnLostKeyboardFocus (System.Windows.Input.KeyboardFocusChangedEventArgs e);
在元素失去键盘焦点时调用。
ButtonBase.OnLostMouseCapture(MouseEventArgs)
protected override void OnLostMouseCapture (System.Windows.Input.MouseEventArgs e);
提供路由事件 LostMouseCapture 的类处理,该事件在此控件不再接收鼠标事件消息时发生。
此实现不会更改LostMouseCapture事件数据的已处理状态(Handled属性)。
如果重写OnLostMouseCapture(MouseEventArgs),请始终在OnLostMouseCapture(MouseEventArgs)实现中调用基本实现。
ButtonBase.OnMouseEnter(MouseEventArgs)
protected override void OnMouseEnter (System.Windows.Input.MouseEventArgs e);
为当鼠标进入此控件时发生的 ClickMode 路由事件提供类处理。
当 ClickMode 设置为时 Hover ,此实现通过将 MouseEnter 事件数据的 Handled 属性设置为true
来将事件标记为已处理 ,并引发 Click 事件。
如果重写 OnMouseEnter(MouseEventArgs) ,请始终在实现中调用基实现 OnMouseEnter(MouseEventArgs) 。
ButtonBase.OnMouseLeave(MouseEventArgs)
protected override void OnMouseLeave (System.Windows.Input.MouseEventArgs e);
为当鼠标离开元素时发生的 MouseLeave 路由事件提供类处理。
如果重写 OnMouseLeave(MouseEventArgs) ,请始终在实现中调用基实现 OnMouseLeave(MouseEventArgs) 。
ButtonBase.OnMouseLeftButtonDown(MouseButtonEventArgs)
protected override void OnMouseLeftButtonDown (System.Windows.Input.MouseButtonEventArgs e);
为鼠标指针位于此控件上并按下鼠标左键时发生的 MouseLeftButtonDown 路由事件提供类处理。
如果重写 OnMouseLeftButtonDown(MouseButtonEventArgs) ,请始终在实现中调用基实现 OnMouseLeftButtonDown(MouseButtonEventArgs) 。
ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs)
protected override void OnMouseLeftButtonUp (System.Windows.Input.MouseButtonEventArgs e);
为鼠标指针位于此控件上并释放鼠标左键时发生的 MouseLeftButtonUp 路由事件提供类处理。
如果重写 OnMouseLeftButtonUp(MouseButtonEventArgs) ,请始终在实现中调用基实现 OnMouseLeftButtonUp(MouseButtonEventArgs) 。
ButtonBase.OnMouseMove(MouseEventArgs)
protected override void OnMouseMove (System.Windows.Input.MouseEventArgs e);
提供当鼠标指针位于此元素上并且移动鼠标指针发生的MouseMove 路由事件的类处理。
如果重写 OnMouseMove(MouseEventArgs) ,请始终在实现中调用基实现 OnMouseMove(MouseEventArgs) 。
ButtonBase.OnRenderSizeChanged(SizeChangedInfo)
protected internal override void OnRenderSizeChanged (System.Windows.SizeChangedInfo sizeInfo);
当控件的呈现大小更改时调用。
重写的 OnRenderSizeChanged 方法 UIElement 。
ButtonBase.Click
public event System.Windows.RoutedEventHandler Click;
在单击 Button 时发生。
Button.IsCancel
public bool IsCancel { get; set; }
获取或设置一个值,该值指示 Button 是否是一个“取消”按钮。 用户可以通过按 ESC 键来激活 Cancel 按钮。
示例
<Button Name="btnCancel" IsCancel="true" Click="OnClickCancel">Cancel</Button>
Button.IsDefault
public bool IsDefault { get; set; }
获取或设置一个值,该值指示 Button 是否是一个默认按钮。 用户可以通过按 ENTER 键调用默认按钮。
示例
<Button Name="btnDefault" IsDefault="true" Click="OnClickDefault">OK</Button>
Button.IsDefaulted
public bool IsDefaulted { get; }
获取或设置一个值,该值指示 Button 是否是在用户按下 ENTER 键时所激活的按钮。
示例
if (btnDefault.IsDefault == true)
{
btnDefault.Content = "This is the default button.";
}
if (btnDefault.IsDefaulted == true)
{
btnDefault.Content = "The button is defaulted.";
}
Button.OnClick
protected override void OnClick ();
单击 Button 时调用。
Button.OnCreateAutomationPeer
protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer ();
ButtonAutomationPeer为此控件创建一个适用于 WPF 基础结构的一部分。
范例:
<Window
x:Class="ButtonDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ButtonDemo"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="800"
Height="450"
mc:Ignorable="d">
<Window.Resources>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="FontSize" Value="20" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="FontSize" Value="30" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<Button
BorderBrush="Black" BorderThickness="1"
Width="200"
Height="50"
Click="Button_Click"
ClickMode="Press"
Content="_Btn1" />
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace ButtonDemo
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
//MessageBox.Show("Btn1 is pressed");
}
}
}
运行如下图:
鼠标移动到按钮上后如下图:
按下按钮时:
Content="_Btn1" 快捷键Alt+B相当于Button的Click
C#代码
<Window
x:Class="ButtonDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ButtonDemo"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="800"
Height="450"
mc:Ignorable="d">
<Window.Resources>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="FontSize" Value="20" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="FontSize" Value="30" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace ButtonDemo
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Button button = new Button();
button.Content = "Btn1";
button.Width = 200;
button.Height = 50;
button.BorderBrush = Brushes.Black;
button.BorderThickness = new Thickness(1);
button.ClickMode = ClickMode.Press;
button.Click += Button_Click;
((this as Window).Content as Grid).Children.Add(button);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Btn1 is pressed");
}
}
}