文档详情

WPF 学习笔记(详细版).pdf

发布:2017-05-26约8.17万字共73页下载文档
文本预览下载声明
WPF WPF WWPPFF 学习笔记 目录 WPF 学习笔记1 Application1 Dispatcher3 Navigation5 XAML9 DependencyProperty15 RoutedEvent20 Resource24 Binding31 Silverlight - Hello, World!68 Application Application AApppplliiccaattiioonn 和 WinForm 类似,WPF 同样需要一个 Application 来统领一些全局的行为和操作,并且每个 Domain 中 只能有一个 Application 实例存在。和 WinForm 不同的是 WPFApplication 默认由两部分组成 : App.xaml 和 App.xaml.cs,这有点类似于 DelphiForm,将定义和行为代码相分离。当然,WebForm 也 采用了类似的方式。XAML 从严格意义上说并不是一个纯粹的 XML 格式文件,它更像是一种 DSL,它的 所有定义都直接映射成某些代码,只不过具体的翻译工作由编译器完成而已。 下面是一个简单的 App 定义。 public partial class App : Application { } paritial paritial 当你在自动生成的 Project 代码中看到 ppaarriittiiaall 时,应该下意识去找找 Thiscodewasgeneratedbya obj\Debug\App.g.cs obj\Debug\App.g.cs tool.…… 不过这次自动生成的代码存放位置更加古怪 ——oobbjj\\DDeebbuugg\\AApppp..gg..ccss。 public partial class App : System.Windows.Application { [DebuggerNonUserCode] public void InitializeComponent() { this.StartupUri = new System.Uri(Window1.xaml, System.UriKind.Relative); } [STAThread] [DebuggerNonUserCode] public static void Main() { App app = new App(); app.InitializeComponent(); app.Run(); } } App.StartupUri MainWindow App.Run() STAThread 用于设置 , 启动消息循环。当然,还有那个 ,这意味 着 WPF 依旧使用一个 UIThread 来处理 UIMessage。 我们完全可以舍弃自动生成的代码,自己手工写一个 App。 public class App : Application { [STAThread] private static void Main() { var app = new App(); var window = new Window { Title = WPF }; app.Run(window); } } Application 提供了一些实用的属性和方法。 Current Current CCuurrrreenntt: 获取 Domain 中默认的 Application 实例。 MainWindow MainWindow MMaaiinnWWiinnddooww: 获取主窗口实例。 Windows Wind
显示全部
相似文档