首页 > 其他分享 >wpf的动态Tab的例子,使用Prism

wpf的动态Tab的例子,使用Prism

时间:2023-07-11 17:12:16浏览次数:33  
标签:moduleCatalog Resolve App Prism protected Tab override wpf

引用Prism.Core,Prism.Wpf 和 Prism.Unity

修改App.xaml 的类型替换为 PrismApplication

 修改App.xaml.cs:

/// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : PrismApplication
    {
        protected override Window CreateShell()
        {
            return Container.Resolve<MainWindow>();
        }

        protected override void InitializeShell(Window shell)
        {
            if (Container.Resolve<LoginWindow>().ShowDialog() == false)
            {
                Application.Current?.Shutdown();
            }
            else if (Container.Resolve<MainWindow>().ShowDialog() == false)
            {
                Application.Current?.Shutdown();
            }
            else
                base.InitializeShell(shell);
        }

        /// <summary>
        /// ioc注入
        /// </summary>
        /// <param name="containerRegistry"></param>
        protected override void RegisterTypes(IContainerRegistry containerRegistry)
        {
            //containerRegistry.Register<>();
        }

        /// <summary>
        /// 模板配置,
        /// </summary>
        /// <param name="moduleCatalog"></param>
        protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
        {
            //可以改成自动扫描
            moduleCatalog.AddModule<MenuModule>();
            moduleCatalog.AddModule<BaseInfoModule>();
            //base.ConfigureModuleCatalog(moduleCatalog);
        }
    }

运行效果

 源码地址:https://gitee.com/null_044_9298/prismWpfDemo.git

标签:moduleCatalog,Resolve,App,Prism,protected,Tab,override,wpf
From: https://www.cnblogs.com/shuaimeng/p/17545338.html

相关文章

  • nf_conntrack: table full, dropping packet
    参考:linux路由跟踪表满错误nf_conntrack:tablefull,droppingpacket原理解决方法说明ping,dmesg或者/var/log/messages日志中这个报错,说明服务器网络方面遇到了瓶颈。此时查看cat/proc/sys/net/netfilter/nf_conntrack_max和cat/proc/sys/net/netfilter/nf_conntra......
  • arptables
    arptables管理ARP包过滤规则表补充说明arptables命令用来设置、维护和检查Linux内核中的arp包过滤规则表。语法arptables(选项)选项-A:向规则链中追加规则;-D:从指定的链中删除规则;-l:向规则链中插入一条新的规则;-R:替换指定规则;-P:设置规则链的默认策略;-F:刷新指定规则链,......
  • sessionStorage可以在多个Tab之间共享数据吗?
    不可以。sessionStorage是浏览器会话级别的存储机制,它只在单个浏览器标签页(tab)或窗口之间共享数据。每当用户打开一个新的标签页或窗口时,会话存储会被重新初始化,每个标签页或窗口都会有自己的独立的sessionStorage。如果您需要在多个标签页或窗口之间共享数据,可以考虑使用其他的......
  • 纯CSS实现table固定thead,tbody进行滚动
    代码一<!--*@Descripttion:*@version:*@Author:yang_ft*@Date:2020-09-2913:59:26*@github:famensaodiseng*@LastEditTime:2020-10-1017:13:17--><!DOCTYPEhtml><htmllang="zh-CN"><head><metachar......
  • sessionStorage可以在多个Tab之间共享数据吗
    问题1:“你知道localStorage和sessionStorage有什么区别吗?”localStorage的数据是持久化的,只要我们不主动清除它,它就会一直存在。关闭选项卡/窗口会结束会话并清除sessionStorage中的对象。问题2:同一个网站下localStorage可以共享数据吗?localStorage数据可以在同一网站下的不同选......
  • optimize table 治理mysql 高水位和空间碎片
    问题背景随着系统上线时间的增长,mysql数据库的数据目录的文件系统使用率已经快要耗尽。从最初的两三个月truancate一次日志表,到最后每周要truancate多次日志表。业务侧将数据库中历史数据(超过全部数据的2/3)逐渐进行了迁移(采用目标库insert,源库delete的方式),这些表中有多个超过1......
  • WPF中TextBlock文本换行与行间距
    换行符:C#代码中:\r\n或 \r或\n    XAML中:&#x0A;或&#x0D;注:\r回车(carriagereturn 缩写),\n新行(newline缩写)。 行间距:LineHeight属性 示例:<TextBlockLineHeight="20"Text="I'mline1&#x0A;I'mline2"/><Te......
  • 在WPF中判断是是否为设计时模式
    方式一:   usingSystem.ComponentModel;   privateboolIsInDesignMode { get{returnDesignerProperties.GetIsInDesignMode(this);} } 此方式适用于当前对象在设计器中查看,而且是DependenceObject类型对象。 如果该......
  • 聊聊WPF中字体的设置
    1.今天帮同事调试一个字体的bug:TextBox中的中文显示大小不一致,比如包含”杰“,”热“。原因是WPF针对点阵字体需要制定特定字体才能正确渲染,比如中文应该设置为”SimSun:2.如果一段文本中既包含中文又包含英文,如何不同设置字体呢?方法:FontFamily支持2个字体设置,比如FontFam......
  • WPF应用中对WindowsFormHost内容进行裁剪
    问题1:  WPF中在使用WindowsFormsHost调用WinFrom控件时,若在WindowsFormsHost上层添加了WPF控件,该控件不会显示出来。<Grid><WindowsFormsHostBackground="White"><Winfrm:WebBrowserx:Name="WinFrmWebBrowser"/></WindowsFormsHo......