RadioButton

WPF仿网易云音乐系列(一、左侧菜单栏:Expander+RadioButton)

独自空忆成欢 提交于 2020-04-28 06:20:09
原文: WPF仿网易云音乐系列(一、左侧菜单栏:Expander+RadioButton) 1.简介 上一篇咱们说到,网易云音乐的左侧菜单栏可以通过Expander+RadioButton来实现,具体如何实现,咱们下面开始干; 首先来一张网易云音乐PC版原图(个人觉得PC版比UWP版左侧菜单好看点): 然后当然是再上以下咱们做出的效果图了: 还原度百分之百有没有。。。 2.上硬菜 首先是无边框窗口方案,这里使用的是DMSkin for WPF,Github地址: https://github.com/944095635/DMSkin-for-WPF Expander 1 < ControlTemplate x:Key ="ExpanderToggleButton" TargetType ="ToggleButton" > 2 < Border Name ="Border" CornerRadius ="2,0,0,0" Background ="Transparent" BorderThickness ="0,0,1,0" > 3 < Image Name ="image" Source ="/CloudMusic;component/Images/tabitems/down_normal.png" /> 4 </ Border > 5 < ControlTemplate

Android应用框架中的四个核心要点

蹲街弑〆低调 提交于 2020-04-27 07:07:11
Android应用框架中的四个核心要点:活动(Activity)、消息(Intent)、视图(View)、任务(Task) (一)活动Activity Android系统内部有专门的Activity堆栈空间,用于存储多个Activity的运行状态。一般,系统会保证某一时刻只有最顶端的那个Activity是处于前端的活动(foreground)状态。当一个Activity启动并进入活动状态,调用顺序是onCreate、onStrat、onResume;退居后台的时候,调用顺序是onPause、onStop;重新回到活动状态的时候,调用顺序是onRestart、onStart、onResume;销毁过程中调用顺序是onPause、onStop、onDestroy。 所有的Activity必须在项目基础配置文件AndroidManifest.xml中声明,这样Activity才可以被Android应用框架所识别;如果不进行声明,运行时会抛出ActivityNotFoundException异常。 (二)消息Intent 在Android应用系统中,常常把Intent称为消息,实际上,Intent本身是一个对象,里面包含的是构成消息的内容和属性。主要有的属性为: 1、组件名称(ComponentName) 对Android系统来说,组件名称实际是一个ComponentName对象

WPF MVVM从入门到精通5:PasswordBox的绑定

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-27 06:15:03
原文: WPF MVVM从入门到精通5:PasswordBox的绑定 WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通3:数据绑定 WPF MVVM从入门到精通4:命令和事件 WPF MVVM从入门到精通5:PasswordBox的绑定 WPF MVVM从入门到精通6:RadioButton等一对多控件的绑定 WPF MVVM从入门到精通7:关闭窗口和打开新窗口 WPF MVVM从入门到精通8:数据验证 完整示例代码下载LoginDemo 读到这里,可能有的读者会发现,我们只讲了用户名的绑定,然后就说到登录事件了,跳过了密码框和单选框的绑定。是因为这两者完全类似,不需要讲吗?并不是,而是因为它们涉及到了新的课题。 对于PasswordBox,可能很多人都会按着TextBox的路子,在ViewModel里面写一个属性,然后绑定到Password属性上。当你写完这一切的时候,你会突然收到Visual Studio的提示:Password并不是依赖属性,不能绑定! 当然,微软的工程师们这样设计是有原因的,毕竟绑定可能引起密码的泄漏问题。 那我们要怎么办呢?路子有两条: (1)改造TextBox,把显示的字符改成***这种。 (2)改造PasswordBox,增加一个依赖属性,借助它读和写Password属性。

WPF MVVM从入门到精通6:RadioButton等一对多控件的绑定

馋奶兔 提交于 2020-04-27 06:14:36
原文: WPF MVVM从入门到精通6:RadioButton等一对多控件的绑定 WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通3:数据绑定 WPF MVVM从入门到精通4:命令和事件 WPF MVVM从入门到精通5:PasswordBox的绑定 WPF MVVM从入门到精通6:RadioButton等一对多控件的绑定 WPF MVVM从入门到精通7:关闭窗口和打开新窗口 WPF MVVM从入门到精通8:数据验证 完整示例代码下载LoginDemo 当我们要进行性别这一属性绑定的时候,我们会发现,两个RadioButton控件都跟一个Gender属性关联。其实我们在绑定控件时还会遇到这样一个问题:属性是一个bool类型,但需要绑定控件的Visibility属性。这个问题也可以在本文介绍的方法得到解决。 控件在绑定时,是可以设置一个Converter的。Converter有两个方法,分别是Convert和ConvertBack。Convert用于将数据格式化之后,显示到控件上。而ConvertBack就是在界面端修改了控件状态,数据应该如何变化。 以下是一个比较通用的RadioButton的Converter: using System; using System.Globalization;

WPF MVVM从入门到精通8:数据验证

不羁岁月 提交于 2020-04-27 05:28:42
原文: WPF MVVM从入门到精通8:数据验证 WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通3:数据绑定 WPF MVVM从入门到精通4:命令和事件 WPF MVVM从入门到精通5:PasswordBox的绑定 WPF MVVM从入门到精通6:RadioButton等一对多控件的绑定 WPF MVVM从入门到精通7:关闭窗口和打开新窗口 WPF MVVM从入门到精通8:数据验证 完整示例代码下载LoginDemo 到目前为止,登录窗口的基本功能似乎都完成了。但我们知道,很多时候用户名的格式是有要求的,例如是只有字母数字下划线,或者字数有限制。这要求我们在登录之前,验证输入内容的正确性。在这一节,我们需要验证用户名和密码的正确性,如果上面两个框的输入非法,禁用登录按钮。 在数据验证错误的时候,我们显示一个叹号在输入框的旁边,如下图所示: 数据验证的方法有很多,我们使用了一种比较优雅的。 首先定义一些验证属性: using System.ComponentModel.DataAnnotations; namespace LoginDemo.ViewModel.Login { public class NotEmptyCheck : ValidationAttribute { public

WPF MVVM从入门到精通2:实现一个登录窗口

别来无恙 提交于 2020-04-27 05:26:34
原文: WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通3:数据绑定 WPF MVVM从入门到精通4:命令和事件 WPF MVVM从入门到精通5:PasswordBox的绑定 WPF MVVM从入门到精通6:RadioButton等一对多控件的绑定 WPF MVVM从入门到精通7:关闭窗口和打开新窗口 WPF MVVM从入门到精通8:数据验证 完整示例代码下载LoginDemo 我们究竟要做一个怎样的东西呢?直接上图: 这看起来比较简单,但把这个登录窗口做完,MVVM的入门就基本完成了。(为什么登录界面要选择性别这么奇怪?无非是因为RadioButton的绑定也是一个课题) 很多教程都是举一个小例子,让人刚开始接触的时候不知道如何在项目中使用。我这里从一个项目的开发角度简单说说。 首先,这个窗口只是一个项目众多窗口中的其中一个。为简单起见,我们把项目文件安排如下: 我们新建了一个ViewModel文件夹,里面按View的内容分文件夹,然后每个文件夹里面包含了Model类和ViewModel类。同时,ViewModel文件夹里有一个Common文件夹,存放一些ViewModel需要共用的类。当然,如果读者有更好的想法,完全没必要按这个模式去做。 项目开始

WPF MVVM从入门到精通3:数据绑定

北城余情 提交于 2020-04-27 05:24:22
原文: WPF MVVM从入门到精通3:数据绑定 WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通3:数据绑定 WPF MVVM从入门到精通4:命令和事件 WPF MVVM从入门到精通5:PasswordBox的绑定 WPF MVVM从入门到精通6:RadioButton等一对多控件的绑定 WPF MVVM从入门到精通7:关闭窗口和打开新窗口 WPF MVVM从入门到精通8:数据验证 完整示例代码下载LoginDemo 我们前面已经说过,现在后端和前端可以分头行事了。我们先来看看后端要做的事情。 对应于用户名输入框,ViewModel里面应该有一个相应的对象。当这个对象状态发生改变时,需要向View发出一个通知。因为所有的属性都要做这么一个事情,我们把通知这件事放到一个基类里面。 using System.ComponentModel; namespace LoginDemo.ViewModel.Common { public abstract class NotificationObject : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; /// <summary> ///

安卓开发—根据顾客预算显示食物信息

梦想的初衷 提交于 2020-04-26 15:05:13
一、效果展示 二、用到的主要控件 CheckBox RadioGroup/RadioButton ToggleButton SeekBar ImageView EditText 三、主要的代码 1.食物类 2.MainActivity逻辑代码 全局变量: 主要方法: 1.初始化控件 2.初始化数据 3.实现控件相应事件 四、收获 复习了CheckBox、RadioButton、ToggleButton、SeekBar和ImageView的使用 只要是…changed监听器必须要控件的状态改变的时候才会回调该监听器 体会了java中的面向对象在android中的使用 搜索功能的核心算法思路是:把选项的boolean类型转换成int编码,用switch case来筛选食物类的属性 程序调试过程中打log也十分有用!!!不一定只用debug!!! 来源: oschina 链接: https://my.oschina.net/u/4274621/blog/4254112

2018-2019-20175205实验四《Android程序设计》实验报告

大憨熊 提交于 2020-04-24 18:07:30
#2018-2019-20175205实验四《Android程序设计》实验报告 [TOC] 实验要求 参考 Android开发简易教程 完成云班课中的检查点,也可以先完成实验报告,直接提交。注意不能只有截图,要有知识点,原理,遇到的问题和解决过程等说明。实验报告中一个检查点要有多张截图。 发表实验报告博客,标题“学期(如2018-2019-2) 学号(如20175300) 实验四《Android开发基础》实验报告” 教材学习 ###第二十五章 活动 Android中的四大组件 Activity Service ContentProvider Broadcast Receiver 其中Activity是Android系统中最常用、最常见的一个组件,一个应用通常包含了多个Activity Activity类定义了如下的回调事件 -onCreate():这是第一个回调方法。当Activity首次被创建时会调用它 onStart:当Activity对于用户来说变为可视状态时会回调此方法 onResume():当用户开始与应用交互时会调用此方法 onPause():当前的Activity正在暂停中,并且先前的Activity正在恢复时,被暂停的这个Activity不会再接收用户的输入,也不再执行任何代码和调用 onStop():当Activity不再为可视状态时会调用该回调方法

js插件---iCheck是用来做什么的

不羁的心 提交于 2020-04-24 05:52:58
js插件---iCheck是用来做什么的 一、总结 一句话总结:25 种参数 用来定制复选框(checkbox)和 单选按钮 (radio button) 定制复选框 定制单选按钮 1、iCheck常用的方法有哪些? $('input').iCheck('check'); $('input').iCheck('uncheck'); $('input').iCheck('toggle'); $('input').iCheck('disable'); $('input').iCheck('enable'); $('input').iCheck('update'); $('input').iCheck('destroy'); 使用方法: $('input').iCheck('check'); //将输入框的状态设置为checked $('input').iCheck('uncheck'); //移除 checked 状态 $('input').iCheck('toggle'); //toggle checked state $('input').iCheck('disable'); //将输入框的状态设置为 disabled $('input').iCheck('enable'); //移除 disabled 状态 $('input').iCheck('update'); //apply