首页 > 代码库 > 【WPF学习】创建WPF应用程序的三种方式
【WPF学习】创建WPF应用程序的三种方式
说到WPF项目,肯定会想到XAML,这两者是相互补充的技术,其实它们也是相互独立的,所以可以创建不使用XAML的WPF项目,今天就讲一讲创建WPF应用程序的三种不同的编码方式。
1、只使用代码:这种方法类似于传统的Windows窗体应用程序,通过代码语句生成用户界面。这种方法在编写WPF项目时很不常见,但是也不完全是没有优点的,它的潜在优点是可以随意定制应用程序。例如想只用代码创建一个窗体,那么需要新建一个Class(注意不是新建一个Window),在Class的代码中继承Window,然后写一个初始化控件的方法。
privat void InitControls(){DockPanel panel=new DockPanel();button btn=new Button;btn.Content="click me";btn.Click+=btn_Click;IAddChild container=panel;container.AddChild(btn);container=this;container.AddChild(panel);}private void btn_Click(object sender,RoutedEventArgs e){btn.Content="OK";}
2、使用代码和未经编译的XAML:这种方法就是在项目中单独建立XAML类,然后在代码中通过XAMLReader类解析它。这种方法对于动态的生成界面有些时候很有益处。就像我最近在做的项目,需要根据数据动态的生成gridview 的列,而列的多少是不一定的,列绑定的属性也是根据数据决定的,我查找了一些方法,但最终决定使用在后台代码中动态写入Xaml标记,我使用的方法比直接导入一个XAML文件要复杂,但是思想是一样的,也是使用XAMLReader类解析。
<DockPane xmlns=:"http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <Button Name="btn">click me</Button></DockPanel>
public Window(string xamlFile){DependencyObject rootElement;using(FileStream fs=new FileStream(xamlFile,FileMode.Open)){rootElement=(DependencyObject)XamlReader.Load(fs);}this.Content=rootElement;btn1=(Button)LogicalTreeHelper.FiindLogicalNode(rootElement,"btn");btn1.Click+=btn_Click;}
3、使用代码和编译过的XAML:这种就是我们常用的方法,比如在项目中新建一个Window,会自动关联一个Xaml文件,同时,Window.cs文件会自动生成一个初始化控件的方法。
【WPF学习】创建WPF应用程序的三种方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。