本系列我不仅会翻译他的每一个tip,也会加入自己开发之中的看法和见解。本系列我希望自己也能和他一样坚持下来,每天的进步才能促成伟大。
在这里郑重说明.该系列是基于Sean Sexton先生的英文博客, Sean Sexton拥有全部版权和撤销权利。
#40 WPF应用主窗体
一个WPF应用程序至少会创建一个主窗体但始终只有一个主窗体MainWindow。Application.MainWindow属性指定了主窗体的引用。默认情况下,主窗体都是第一个创建的窗体。当然你可以在Xaml中来手动指定主窗体。
在应用程序启动过程,下面的示例演示如何实例化代码中的 MainWindow
#41 ShutdownMode
WPF Application类里包含一个ShutDownMode的属性。
指定了应用程序关闭的规则。一般来说是OnLastWindowClose,即关闭了所有窗口后应用程序关闭。可以手动指定为OnMainWindowClose(即主窗体关闭时程序关闭)和OnExplicitShutdown(必须要显式调用ShutDown方法,不然即使关闭窗口,程序也会后台运行)
#42 设计视觉元素的三个位置
WPF设计图形元素时,比如图形元素在Window,Page或者UserControl中,有三个地方可以来对这个对象进行更改:
更改布局(Layout)
1. 在WPF设计器(designer)中的design view里进行更改。
2. WPF设计器中XAML界面直接进行更改。
更改行为(xaml.cs)
3. 在IDE中对C#代码进行更改。
#43 Visual Studio创建Xaml
在Visual Studio中双击Xaml code可以打开一个分屏的Xaml code和Design界面,如下:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuITZzkDN3czM5QGOmVmZwQTNlRzM2YWYxMjMykjNycjZfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
在Design的Tab中,你可以通过拖拽控件来进行UI设计。在属性栏进行对控件的更改。
在Xaml的Tab,可以通过修改代码的方式直接完成上面两步。
VS会保持设计界面和Xaml界面的同步,当修改其中之一时,另外一个tab会实时的更新。
#44 逻辑树
WPF逻辑树是用户界面元素的层次结构关系的树状图。如果你的UI是在Xaml里定义的,逻辑树就是Xaml中元素整合为具有父子关系的树的模型。它描述了在运行时这些元素之间的关系。逻辑树可以帮助我们理解:
1. Resource lookup 资源查找
2. Property inheritance 属性继承
3. Event routing 路由事件。
下面有个例子:
逻辑树的模型是:
后篇会对WPF内部机制继续做探索,敬请关注!
如果觉得有帮助,右下角赞一下吧~ (* *)