WPF之APP.XAML 动态更改启动窗体startupUri

本文介绍WPF应用程序启动配置方法,包括如何指定启动窗口、利用Application_Startup事件动态改变启动窗口及资源字典(ResourceDictionary)的使用技巧,帮助开发者更好地管理WPF项目的全局资源。
摘要由CSDN通过智能技术生成

WPF运行之后,App.xaml是应用的声明起始点。

一、指定入口

通过指定Application StartupUri属性,指示了启动应用的时候,加载哪个窗口或网页。
最常见的就是将默认的MainWindow.xaml修改为Login.xaml
也可通过Application_Startup来实现,这种方式可提前指定标题等属性。
App.xaml最常使用的特性是定义全局资源,它们可能会在整个应用里面被使用或者访问,如全局样式。
ResourceDictionary
作用:一个应用程序中,某个窗口需要使用样式,但是样式非常多,写在一个窗口中代码分类不方便。最好Style写在专门的xaml文件中,然后引用到窗口中,就像HTML引用外部css文件一样。
初衷:就在于可以实现多个项目之间的共享资源,资源字典只是一个简单的XAML文档,该文档除了存储希望使用的资源之外,不做任何其它的事情。
代码查看Demo的WpfApp1.WpfApp2
ResourceDictionary.MergedDictionaries 属性
获取构成在合并字典的各种资源字典 ResourceDictionary 字典的集合,作为静态资源直接调用 
例如自定义图标,这样我可以在系统中随意使用定义的图标了

<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/resources/Icons.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>


总结:
     使用资源字典的主要原因有两个:
    a. 提供皮肤功能。
    b. 存储需要被本地话的内容(错误消息字符串等,实现软编码)

二、初始化

通过App()构造函数,实现日志等组件的初始化

三、WPF 动态更改启动窗体startupUri

第一步: 在 App.xaml 里,把 StartupUri=""去掉,改成  Startup="Application_Startup"

第二步: 在 App.xaml.cs里,增加 Application_Startup 事件:

public partial class App : Application
    {

        private void Application_Startup(object sender, StartupEventArgs e)
        {
            Application currApp = Application.Current;
            string ctsq = Common.pdct();
            if (ctsq == "1")
                currApp.StartupUri = new Uri("LoginWindow.xaml", UriKind.RelativeOrAbsolute);
            else
                currApp.StartupUri = new Uri("ZLogni.xaml", UriKind.RelativeOrAbsolute);
        }
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值