黑马程序员_WPF(WPF认识,Sender,C#基础加强类继承,集合,Xaml,控件通用属性)

一.WPF认识

很多教程都是WinForm,但是Windows8平板电脑,Windows Phone手机开发都是使用微软的XAML技术,WPF也是一个采用XAML的类似于WinForm的技术,学习之后不仅掌握了编程基础,也可以开发C/S程序,也约等于掌握了平板电脑,手机开发,哪怕以后接触WinForm也是“一通百通”。

二.Sender

 private void sender_Click(object sender, RoutedEventArgs e)

        {

         //sender触发当前事件的控件,object类型的

         //Button控件对于C#中的Button

         //sender可以看成是触发事件的控件,但是是object类型,需要类型转换

         //如果有一个Button指向的是该事件,则触发该事件的所有控件都能够成功实现

            Button bs = (Button)sender;

            bs.Content = "我是通过sender实现的";

        }

三.C#基础加强类继承

1.定义语法:“class 子类:父类”,不指定父类则父类为Object ;

2.Net中所有类都直接或者间接继承自Object;

3.可以用父类变量指向子类对象,不能把子类变量指向父类对象;“变量类型”和“对象类型”不一样,盒子中的面包可以贴“面包”,“面食”,“食物”等标签;

4.如果一个父类变量指向的是子类对象,那么可以把子类变量指向这个父类变量,但是需要做类型转换:Person p1=(Person) obj1;

  //在同一项目下面建一个Animal类,有new就有新对象

            Animal a1 = new Animal();

            a1.Jiao();

            //在同一项目下面建一个Dog,继承Animal

            //实例化一个d1,根据前面学习的继承基础可以知道,子类可以使用父类的公用方法

            Dog d1 = new Dog();

            d1.Jiao();//使用父类方法

            d1.Wang();//使用自己方法

            重点来了/

            //实例化一个Dog的对象

            Dog dog = new Dog();

            //父类的变量指向子类的对象是可以的

            Animal animal = dog;//变量是一个标签,对象是一个实际存在的东西,

            //其实也就是说给实在的东西贴标签的过程。

            //一箱子苹果,可以贴标签为“水果”“食物”

 

 

            有来重点了/

             //不可以把一个子类的变量指向父类的对象

            //实例化一个父类动物的对象(对象真实存在的)

            Animal a = new Animal();

            //不可以把一个狗的标签贴在动物的身上

            Dog dd = a;这句代码是错误的!!!

            Dog dd1 = (Dog)a;//强制类型转换,这样可以

 

            /再看重点//

            //只要new,就有对象,下面这句代码的意思:实例化一个Dog对象,

            //通过实例化就有了真实存在的该Dog对象,把动物的标签贴到Dog

            //这句代价是对的,可以这样来

            Animal animal2 = new Dog();

            //虽然这里animal2作为动物标签贴在了狗身上,但是animal2还是代表Animal,它是无法调用子类DogWang();

            Dog ddd =(Dog)animal2;//强制类型转换为Dog

            ddd.Wang();//这样是可以调用子类Dog的公用方法

四.集合

1.有时候不能预先确定长度或者需要动态修改内容和长度,这时候可以使用List<T>泛型集合,把T改成对应的类型即可。

2.List<T>,可以看成是动态的数组。Add,Clear,Count,Remove,ToArry(转换为数组)

3.List<T>可以使用foreach遍历,以后要多用,更专业

  //定义一个数组长度为3int数组

            int[] arr = new int[3];

            //对数组进行赋值

            arr[0] = 1;

            arr[1] = 2;

            arr[2] = 3;

            //遍历输入数组的每个值,要学会使用foreach进行遍历,记住:int i in arr;在循环内的i则对应表示arr[i]

            foreach (int i in arr)

            {

                MessageBox.Show(i.ToString());

            }

 

            ///以上定义一个数组有一个弊端,数组的长度固定,添加起来比较麻烦,用List<数据类型>比较好

            //定义一个List<T>泛型数组

            List<int> list = new List<int>();

            //进行添加值

            list.Add(1);

            list.Add(2);

            list.Add(3);

            list.Add(4);

            list.Add(5);

            foreach (int i in list)

            {

                MessageBox.Show(i.ToString());

            }

            MessageBox.Show(list.Count.ToString());

            //移除数组中值为3的项

            list.Remove(3);

            MessageBox.Show(list.Count.ToString());

            //清空list数组

            list.Clear();

            MessageBox.Show(list.Count.ToString());

五.Xaml

1.Xaml的特点:Xaml就是XML语法,以后要多手写Xaml,写法如同Html,开闭节点必须一致,也可以<aaa/>简写自动关闭(简写适用于比较简单的开发,复杂的还是要用开闭节点);

2.每个控件或者元素都是一个XML标签,一个XAML标签一般是new一个对象。

3.两种赋值方式:内部式:Test=”www”;闭合式:<TextBox.Text>www</TextBox.Text>,闭合式适合于比较复杂的属性值。

 <Button HorizontalAlignment="Left" Margin="48,49,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" >

            <Button.Content>提交</Button.Content>

            <Button.Height>32</Button.Height>

 </Button>

六.控件通用属性

使用方法和WinForm差不多,但是在这里主要是Visibility的枚举,控件的隐藏属性和WinForm不同,则需要举例说明一下:

 private void Button_Click(object sender, RoutedEventArgs e)

        {

            //visibility是枚举类型的,我们只用两个值.visible显示,collapsed隐藏

            if (this.txt_name.Visibility == System.Windows.Visibility.Visible)

            {

                this.txt_name.Visibility = System.Windows.Visibility.Collapsed;

            }

            else

            {

                this.txt_name.Visibility = System.Windows.Visibility.Visible;

            }

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值