博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF 学习之旅 HELLO WORLD篇
阅读量:6253 次
发布时间:2019-06-22

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

为什么要学WPF:
  由于接下来的工作会做一些桌面软件,对博主来说可以快速上手的就是之前已经有过一点经验的WINFORM,和WPF,所以面临着选择问题。   网上关于WINFORM,WPF的论战很多。有说WINFORM不行的,有说WPF不行的,有说两个都不行的,当然不能被这些话绕晕,既然感兴趣,自己试试吧!   于是先看了很多WPF的介绍资料,之后就开始了入门学习。   本文分两个部分:     一:解析WPF初始提供的文件。     二:HELLO WORLD 部分。

  

WPF初始文件:
  工程创建后,默认生成的XAML 与CS 代码如下:
XAML部分
namespace WpfApplication1{    ///     /// Interaction logic for MainWindow.xaml    ///     public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();        }    }}
View Code
  XAML部分:第2,3行即引入命名空间,博主刚看到命名空间居然是URL后,一愣,后来查资料发现原来这样做的目的是保证命名空间唯一。   第3行中的x:是以后用"x"来代指此命名空间的意思。把第1,3行的"x"都改成"y"也是可以的。   第1行:这个Window 和 HTML中的 html一样,只允许有最上层的一个,即代表XAML文件结束。同时,这一行将生成一个MainWindow类,我们打开CS文件可以发现文件中也有个MainWindow类,这两部分之所以不冲突就是C# partial 关键字的功劳啦。   
即对应着HTML中的   博主在其中随便输入了
Hello
    效果如下图

       

 

HELLO WORDL:
目的:输入框输入文字,即可根据关键字模糊查找人的信息。   直接贴代码了:   XAML部分:
View Code
页面逻辑部分:
namespace WpfHelloWorld{    ///     /// Interaction logic for MainWindow.xaml    ///     public partial class MainWindow : Window    {        IPersonDatabase databaseInstance;        public MainWindow()        {            databaseInstance = new DataBase();            InitializeComponent();        }        private void personInfoLoad(object sender, RoutedEventArgs e)        {            var personInfoList = databaseInstance.RetrivePersonByName(PersonKeywordInput.Text.Trim());            var personInfoBuilder = new StringBuilder();            foreach (var item in personInfoList)            {                personInfoBuilder.AppendLine(String.Format("ID = {0} NAME = {1}", item.Id, item.Name));            }            PersonInfoArea.Text = personInfoBuilder.ToString();        }    }}
View Code
 “人的信息“部分,简单用于一个List模拟了数据源,然后实现了IPersonDatabase接口,可以根据关键字检索人:
public interface IPersonDatabase{    List
RetrivePersonByName(string keyWord);}public class DataBase : IPersonDatabase{ List
personRepository { get; set; } public DataBase() { var test = new Person { Id = 2, Name = "23"}; personRepository = new List
(); personRepository.Add(new Person() { Id = 1, Name = "张一" }); personRepository.Add(new Person() { Id = 2, Name = "张二"}); personRepository.Add(new Person() { Id = 3, Name = "张三"}); personRepository.Add(new Person() { Id = 4, Name = "王一"}); personRepository.Add(new Person() { Id = 5, Name = "王二"}); personRepository.Add(new Person() { Id = 6, Name = "王三"}); personRepository.Add(new Person() { Id = 7, Name = "李一"}); personRepository.Add(new Person() { Id = 8, Name = "李二" }); personRepository.Add(new Person() { Id = 9, Name = "李三" }); personRepository.Add(new Person() { Id = 10, Name = "刘一"}); personRepository.Add(new Person() { Id = 11, Name = "刘二" }); personRepository.Add(new Person() { Id = 12, Name = "刘三" }); personRepository.Add(new Person() { Id = 13, Name = "刘四" }); personRepository.Add(new Person() { Id = 14, Name = "刘五" }); } public List
RetrivePersonByName(string keyWord) { return personRepository.Where(item => item.Name.Contains(keyWord)).ToList(); }}
View Code
最终效果:

 

结论:
WPF是非常不错的,需要坚持下去,下篇WPF文章将会写到对于XAML的理解和WPF LAYOUT。

转载于:https://www.cnblogs.com/E-WALKER/articles/4099691.html

你可能感兴趣的文章
Modular Inverse(模逆元,扩展欧几里德)
查看>>
高性能WEB开发之Web性能测试工具推荐
查看>>
找出两个文本文件的不同的行
查看>>
WPF笔记(1.2 Navigation导航)——Hello,WPF!
查看>>
练习PYTHON之GEVENT
查看>>
Web持久化存储Web SQL、Local Storage、Cookies(常用)
查看>>
node js 常用模块
查看>>
Libsvm和Liblinear的使用经验谈
查看>>
php生成curl命令行
查看>>
PHP中的数据库四、mongodb
查看>>
品读吴军"之"系列
查看>>
框架学习笔记:Unity3D的MVC框架——StrangeIoC
查看>>
Android NumberPicker 修改分割线颜色和高度及字体颜色大小
查看>>
树莓派键盘布局修正
查看>>
Android之Http通信——3.Android HTTP请求方式:HttpURLConnection
查看>>
hdu 5071 Chat(模拟)
查看>>
【转】 测试人员的职业规划 --整理标注
查看>>
C++智能指针--weak_ptr
查看>>
struts2的坑以及tomcat的一些常识
查看>>
HDURevenge of Segment Tree(第二长的递增子序列)
查看>>