博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SilverLight中的一些常用控件
阅读量:5818 次
发布时间:2019-06-18

本文共 1751 字,大约阅读时间需要 5 分钟。

常用控件:指经常会用到但不会注意到的一些控件中的属性。那些简单明了的,如:Button控件及其Click属性就不用说了

  • HyperLinkButton

    可以添加超级链接的Button,其属性:

    NavigateUri="超链接地址"

    TargetName="_blank"(在新的页面打开超链接)、"_parent"、"_self"等(默认是在当前页面打开超链接)

  • CheckBox

    <CheckBox x:Name="cb" Content="选择控件" Click="cb_Click" Checked="cb_Checked" unChecked="cb_unChecked"/>

    如果判断选择控件是否为选中状态:this.cb.isChecked返回值类型为bool?。

    因此可以看出CheckBox默认下有三种状态:true、false、不确定

    因为checkBox中三种状态,所以如果使用它的Click事件,判断是否控件是否为选择状态时:

      

if(this.cb.isChecked == true){     MessageBox.Show("选择状态");}else{     MessageBox.Show("未选择状态");}

    这样写就会使产品上线后,出现错误。因为当用户选择控件处于不确定状态时,你会记录错误的用户状态。

    这样就要:

if(this.cb.isChecked == true){   //选择状态}else if(this.cb.isChecked == false){   //未选择状态}

   CheckBox还有个属性:IsThreeState="true"表示用三种状态,当然你需要使用false(提醒:属性单词应该没写错)

    如果使用IsThreeState="false",是不是就可以直接使用第一段代码了呢,我没有试过,真的!

  如果使用Click属性让你感到这种判断不爽,那就使用Checked=""和UnChecked=""事件(提醒:事件名称应该是这样写的)

   

private void cb_Checked(Object sender,RoutedEventArgs e){    //checkBox is Checked}private void cb_UnChecked(Object sender,RoutedEventArgs e){    //checkBox is unChecked}

 

 

   那么如果当一个页面中有不止一个CheckBox怎么办呢,是不是每个CheckBox都要给它一个Click事件,然后在Click事件中判断checkBox的三种或两种状态呢,

亦或是,为每个checkBox给出Checked="cb_Checked"和UnChecked="cb_UnChecked"事件呢,

  这样写当然没问题,而且一个类中多个十几行代码,一个项目多个几百行,上千行这种简单的代码,没有多大影响。但……,总是不好

那么解决方案:

  给多个CheckBox相同的事件方法,即选择事件、未选择事件和单击事件触发后调用相同的方法。

private void checkBox_Checked(Object sender,RouteEventArgs e){ CheckBox cb = sender as CheckBox; Message.Show("");}

 

  上面这段代码,写着写着感觉不太好,好像还是要做很多判断(你总要知道是那个选择了,对应做出不同的状态),所以就不想继续写了。

  根据自己的需要吧

    

posted on
2013-11-17 14:08 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lh-V/p/3427797.html

你可能感兴趣的文章
node生成自定义命令(yargs/commander)
查看>>
各种非算法模板
查看>>
node-express项目的搭建并通过mongoose操作MongoDB实现增删改查分页排序(四)
查看>>
PIE.NET-SDK插件式二次开发文档
查看>>
如何创建Servlet
查看>>
.NET 设计规范--.NET约定、惯用法与模式-2.框架设计基础
查看>>
win7 64位+Oracle 11g 64位下使用 PL/SQL Developer 的解决办法
查看>>
BZOJ1997:[HNOI2010]PLANAR——题解
查看>>
BZOJ1014:[JSOI2008]火星人prefix——题解
查看>>
使用Unity3D引擎开发赛车游戏
查看>>
HTML5新手入门指南
查看>>
opennebula 开发记录
查看>>
ubuntu 修改hostname
查看>>
sql 内联,左联,右联,全联
查看>>
C++关于字符串的处理
查看>>
6、Web Service-拦截器
查看>>
Flask 源码流程,上下文管理
查看>>
stream classdesc serialVersionUID = -7218828885279815404, local class serialVersionUID = 1.
查看>>
ZAB与Paxos算法的联系与区别
查看>>
java 读取本地的json文件
查看>>