WPF应用开发技巧
主界面定制开发
-
界面无边框样式应用
样式引用
在界面中引用已有的WindowStyle来实现界面无边框的样式
样式定义
也可以自己定义界面的样式,来实现界面样式个性化
-
界面最大最小关闭设计
-
在MainWindow.xaml中定义最大最小关闭按钮样式及关联事件
-
在MainWindow.xaml.cs中定义对应的事件
private void WindowMinButtonClick(object sender, RoutedEventArgs e) { this.WindowState = WindowState.Minimized; } private void WindowMaxButtonClick(object sender, RoutedEventArgs e) { if (this.WindowState!=WindowState.Maximized) { this.WindowState = WindowState.Maximized; } else { this.WindowState = WindowState.Normal; } } private void WindowCloseButtonClick(object sender, RoutedEventArgs e) { this.Close(); }
-
-
实现窗体鼠标左键拖拽
响应窗体的MouseLeftButtonDown事件
private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { this.DragMove(); }
-
修复最大还原界面显示问题
添加现有项
WindowBehaviorHelper.cs
到Lib文件夹中,在主界面的构造函数中调用修复方法。public MainWindow() { InitializeComponent(); //缩放,最大化修复 WindowBehaviorHelper windowHelper = new WindowBehaviorHelper(this); windowHelper.RepairBehavior(); }
国际化
-
引入LocalResourceManager.cs
可在WPF公用库的Lib中获取LocalResourceManager.cs文件,加入该文件后,在程序主窗体启动的构造函数中添加
LocalResourceManager.GetInstance();
,以加载语言文件资源。注意:必须加在
InitializeComponent();
代码段之前。 -
使用CSMultiLanguageManager提取项目中的语言资源
具体使用方法见该工具的使用说明,可在WPF公用库的Tools目录中获取该工具。
-
使用WpfLangResxConveter将提取到的txt语言文件转换成xaml资源文件
可在WPF公共库的Tools目录中获取到该工具。
注意:转换后的资源文件命名需要按照规范,即 应用程序名称+语言类型+
如对于ComplieClient转换资源文件,其中、英文命名应为:CompileClient.zh_CN.xaml、CompileClient.en-US.xaml,并且放置在.xaml
应用程序根目录/Language
目录下 -
设置程序默认的语言文件
对于目前的这种通过加载本地语言资源实现国际化的方式,如果本地语言资源文件不存在,则应用程序中的语言字符是无法正常显示的,故需要设置程序默认的语言资源,并编译到程序中。如果本地语言资源不存在时,就加载默认资源文件。
即需要在当前应用程序项目中新建
Language
文件夹,且加入应用程序名称+语言类型+.xaml
的默认语言资源文件,目前优先支持中文,检测不到中文资源文件就会再检测英文资源文件。