|
[源码下载]
重新想象 Windows 8 Store Apps (2) - 控件之按钮控件: Button, HyperlinkButton, RepeatButton, ToggleButton, RadioButton, CheckBox, ToggleSwitch
作者:webabcd
介绍
重新想象 Windows 8 Store Apps 之按钮控件
- Button - 按钮控件
- HyperlinkButton - 超链按钮
- RepeatButton - 按住后会重复执行单击操作的按钮
- ToggleButton - 可切换状态的按钮
- RadioButton - 单选框控件
- CheckBox - 复选框控件
- ToggleSwitch - 状态切换控件
示例
1、Button 的 Demo
ButtonDemo.xaml.cs
/*
* Button - 按钮控件
*/
using System;
using Windows.UI.Popups;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
namespace XamlDemo.Controls
{
public sealed partial class ButtonDemo : Page
{
public ButtonDemo()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo
(NavigationEventArgs e)
{
/*
* Button - 按钮控件,其全部功能是通过其基类 ButtonBase 提供的
* ClickMode - 引发 Click 事件的模式:ClickMode.Release(默认值), ClickMode.Press, ClickMode.Hover
* IsPointerOver - 设备指针(鼠标或手指等)是否在按钮上
* IsPressed - 当前按钮是否处于按下的状态
* Command 和 CommandParameter 等写到 MVVM 的时候再详细写
*/
Button btn = new Button();
btn.Content = "我是按钮";
btn.ClickMode = ClickMode.Hover;
btn.Click += btn_Click;
root.Children.Add(btn);
}
async void btn_Click(object sender,
RoutedEventArgs e)
{
await new MessageDialog("触发了按钮的
Click 事件").ShowAsync();
}
}
}
2、HyperlinkButton 的 Demo
HyperlinkButtonDemo.xaml
HyperlinkButtonDemo.xaml.cs
/*
* HyperlinkButton - 超链按钮
*/
using Windows.UI.Xaml.Controls;
namespace XamlDemo.Controls
{
public sealed partial class HyperlinkButtonDemo : Page
{
public HyperlinkButtonDemo()
{
this.InitializeComponent();
this.Loaded += HyperlinkButtonDemo_Loaded;
}
void HyperlinkButtonDemo_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs
e)
{
// 为 HyperlinkButton 加上鼠标移入变手型的功能
btnLink.PointerEntered += btnLink_PointerEntered;
btnLink.PointerExited += btnLink_PointerExited;
}
void btnLink_PointerEntered(object sender,
Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
// 鼠标移入 HyperlinkButton 变手型
Windows.UI.Core.CoreWindow.GetForCurrentThread().PointerCursor = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.Hand, 1);
}
void btnLink_PointerExited(object sender,
Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
// 鼠标移出 HyperlinkButton 变箭头
Windows.UI.Core.CoreWindow.GetForCurrentThread().PointerCursor = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.Arrow, 1);
}
}
}
3、RepeatButton 的 Demo
RepeatButtonDemo.xaml
RepeatButtonDemo.xaml.cs
/*
* RepeatButton - 按住后会重复执行单击操作的按钮
*/
using Windows.UI.Xaml.Controls;
namespace XamlDemo.Controls
{
public sealed partial class RepeatButtonDemo : Page
{
public RepeatButtonDemo()
{
this.InitializeComponent();
}
private void RepeatButton_Click_1(object
sender, Windows.UI.Xaml.RoutedEventArgs e)
{
lblMsg.Text += "a";
}
}
}
4、ToggleButton 的 Demo
ToggleButtonDemo.xaml.cs
/*
* ToggleButton - 可切换状态的按钮
*/
using System;
using Windows.UI.Popups;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
namespace XamlDemo.Controls
{
public sealed partial class ToggleButtonDemo : Page
{
public ToggleButtonDemo()
{
this.InitializeComponent();
this.Loaded += ToggleButtonDemo_Loaded;
}
void ToggleButtonDemo_Loaded(object sender, RoutedEventArgs e)
{
/*
* ToggleButton - 可切换状态的 Button
* IsThreeState - 是否支持 3 状态
* IsChecked - 按钮的选中状态: false, true, null
* Checked - 按钮变为选中状态后所触发的事件
* Unchecked - 按钮变为未选中状态后所触发的事件
* Indeterminate - 按钮变为不确定状态后所触发的事件
*/
ToggleButton btn = new ToggleButton();
btn.Content = "可切换状态的按钮";
btn.Checked += btn_Checked;
btn.Unchecked += btn_Unchecked;
root.Children.Add(btn);
}
async void btn_Unchecked(object sender,
RoutedEventArgs e)
{
await new MessageDialog("按钮为未选中
状态").ShowAsync();
}
async void btn_Checked(object sender,
RoutedEventArgs e)
{
await new MessageDialog("按钮为选中状
态").ShowAsync();
}
}
}
5、RadioButton 的 Demo
RadioButtonDemo.xaml
6、CheckBox 的 Demo
CheckBoxDemo.xaml
7、ToggleSwitch 的 Demo
ToggleSwitchDemo.xaml
OK
[源码下载] |
|
|