zoukankan      html  css  js  c++  java
  • SilverLight中的一些常用控件

    常用控件:指经常会用到但不会注意到的一些控件中的属性。那些简单明了的,如: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相同的事件方法,即选择事件、未选择事件和单击事件触发后调用相同的方法。

    <CheckBox x:Name="cb1" Content="" Click="checkBox_Click"  Checked="checkBox_Checked" UnChecked="checkBox_UnChecked"/>                                          
    
    <CheckBox x:Name="cb2" Content="" Click="checkBox_Click"  Checked="checkBox_Checked" UnChecked="checkBox_UnChecked"/>                                          
    
    private void checkBox_Checked(Object sender,RouteEventArgs e)
    {
        CheckBox cb = sender as CheckBox;
        Message.Show("");
    }

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

      根据自己的需要吧

        

  • 相关阅读:
    Linux 常用命令--来自B站Up主codesheep
    如何区别调用python2和python3
    fastp 使用
    使用bash shell删除目录中的特定文件的3种方法
    python 正则表达式 finditer
    vcf format
    vcf文件(call variants得来的)怎么看变异是纯合还是杂合
    js Object.preventExtensions()
    js 对象的属性特征
    shell基础 以及 sed、awk
  • 原文地址:https://www.cnblogs.com/lh-V/p/3427797.html
Copyright © 2011-2022 走看看