ToggleSwitch控件

在应用程序中ToggleSwitch控件可以模拟一个允许用户在启用和禁用两种状态之间进行切换的物理开关,ToggleSwitch控件的功能与我们在日常生活中所使用的电源开关类似。

在XAML文件中,ToggleSwitch控件的用法如下所示:

<ToggleSwitch .../>

下面介绍一下ToggleSwitch控件的常用属性:

  • Header属性,获取或设置ToggleSwitch控件的标题内容。
  • OffContent属性,当ToggleSwitch控件是禁用状态时,使用OffContent属性显示文本内容。
  • OnContent属性,当ToggleSwitch控件是启用状态时,使用OnContent属性显示文本内容。

介绍完常用属性后,接着来看一下ToggleSwitch控件的常用事件:

  • Toggled事件,当ToggleSwitch控件的状态发生改变时触发。
  • Tapped事件,当单击ToggleSwitch控件的文字区域时触发。

接下来使用ToggleSwitch控件设计一个开关,拨动开关可以显示不同的效果。

新建一个Windows应用商店的空白应用程序项目,并命名为ToggleSwitchDemo,在MainPage.xaml文件的Grid元素中添加如下代码。

<ToggleSwitch Name="MyToggleSwitch" Header="ToggleSwitch控件示例" OffContent="禁用状态" FontSize="20" OnContent="启用状态" Toggled="ToggleSwitch_Toggled" HorizontalAlignment="Center" Margin="543,338,618,343"/>

<ProgressRing Name="MyProgressRing" Width="50" Height="50" Margin="748,359,568,359"/>

在上面的代码中,添加了一个ToggleSwitch控件,定义其Header属性的值为"ToggleSwitch控件示例"、OffContent属性的值为"禁用状态"以及OnContent属性的值为"启用状态",然后为Toggled事件注册了事件处理方法ToggleSwitch_Toggled,以便在拨动ToggleSwitch控件时显示不同效果。为了更好的显示对比效果,添加了一个不确定进度环ProgressRing控件(在4.4.4小节将对ProgressRing控件进行介绍)。接着定义ProgressRing控件的Name属性为MyProgressRing,Width属性和Height属性的值为50。

布局好前台界面后,打开MainPage.xaml.cs文件,为ToggleSwitch控件的Toggled事件添加ToggleSwitch_Toggled处理方法,当拨动ToggleSwitch控件时会启用或禁用此控件以便显示或隐藏不确定进度环。代码如下所示:

private void ToggleSwitch_Toggled(object sender, RoutedEventArgs e)

{

if (MyToggleSwitch.IsOn == true)

{

//显示不确定进度环和动画效果

MyProgressRing.IsActive = true;

MyProgressRing.Visibility = Visibility.Visible;

}

else

{

//隐藏不确定进度环

MyProgressRing.IsActive = false;

MyProgressRing.Visibility = Visibility.Collapsed;

}

}

在上面的代码中,通过MyToggleSwitch拨动开关的IsOn属性来判断开关的当前状态,当拨动开关处于启用状态时,其IsOn属性的值为true,设置MyProgressRing不确定进度环的IsActive属性和Visibility属性的值分别为true和Visibility.Visible,使不确定进度环显示出来并显示动画效果。

当拨动开关处于禁用状态时,其IsOn属性的值为false,设置MyProgressRing不确定进度环的IsActive属性和Visibility属性的值分别为false和Visibility.Collapsed,使不确定进度环隐藏。

运行程序,ToggleSwitch控件默认处于禁用状态,如图4-15所示,拨动开关后,将ToggleSwitch控件设置到启用状态,界面将显示带有动画效果的不确定进度环,如图4-16所示。


图4-15 ToggleSwitch控件示例——拨动开关前 图4-16 ToggleSwitch控件示例——拨动开关后

Win10系列:C#应用控件基础8的更多相关文章

  1. Win10系列:JavaScript 控件的使用

    向页面中添加的控件可分为两种类型:标准的HTML控件和WinJS库控件.其中标准的HTML控件是指HTML标准中定义的基本控件,如按钮和复选框:WinJS库控件是为开发基于JavaScript 的Wi ...

  2. WPF从我炫系列4---装饰控件的用法

    这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollView ...

  3. WPF 模仿 UltraEdit 文件查看器系列一 用户控件

    WPF 模仿 UltraEdit 文件查看器系列一 用户控件 运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-10 章节: 起步 添加用户控件 ...

  4. C#控件系列--文本类控件

    C#控件系列--文本类控件         文本类控件主要包含Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能         Label用来 ...

  5. 重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree

    原文:重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree [源码下载] 重新想象 ...

  6. 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试

    原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store ...

  7. WPF编游戏系列 之四 用户控件

    原文:WPF编游戏系列 之四 用户控件        在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2. ...

  8. Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem

    Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...

  9. Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid

    Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid.TGrid TStringGrid.TGrid 都是从 TCustomGrid 继承; 区别有:1 ...

  10. Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox、TComboEdit

    Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox.TComboEdit TListBox 有两个兄弟 TComboListBox.TComboEditL ...

随机推荐

  1. 家庭记账本之微信小程序(五)

    wxml的学习 WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 用以下一些简单的例子来看看WXML具有什么能力: 数据 ...

  2. Poj3624 Charm Bracelet (01背包)

    题目链接:http://poj.org/problem?id=3624 Description Bessie has gone to the mall's jewelry store and spie ...

  3. js-cookie的用法

    cookie的作用无需多言,自己封装一个cookie,不停地复制黏贴页颇为麻烦,在这里,有npm为我们封装好的插件js-cookie: https://www.npmjs.com/package/js ...

  4. Java继承和组合

    为了保证父类有良好的封装性,不会被子类随意修改,设计父类通常应该遵循以下规则: 1.尽量隐藏父类的内部数据,尽量把父类的所有成员变量设置为 private 访问类型,不要让子类直接访问父类的成员变量: ...

  5. lvs 初始 第一章

    Linux Virtual Server 第一章  初识 一 . 介绍 LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动 ...

  6. iptables 最终 第四章

    转发 ,NAT 功能 Chain FORWARD 开启网卡转发功能: /proc/sys/net/ipv4/ip_forward #使用sysctl 开启内核转发功能 sysctl - 核心转发: / ...

  7. Linux 查看系统状态

    查看系统状态 命令:vmstat 命令:vmsta 1 10               #每1秒钟1次显示10次. r:几个进程在占用cpu b:等待IO值 Swpd:多少交换内存 free:剩余内 ...

  8. 【题解】Luogu P2472 [SCOI2007]蜥蜴

    原题传送门 题目要求无法逃离的最少有多少 直接做肯定不好做,我们帮题目变一个说法:最多能逃离多少 这个询问一看就是最大流 考虑如何建图: 1.将S和每一个有蜥蜴的点连一条流量为1的边(每个蜥蜴只能用1 ...

  9. 剑指offer(10)矩形覆盖

    题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 题目分析 当然也可以逆向思维 应为可以横着放或竖着放,多以f ...

  10. 批量操作RunTime之获取的Dic换成Model

    方法一: // // AlinkDeviceInfo.m //// // Created by Vivien on 2018/10/12. // Copyright © 2018年 . All rig ...