使用WPF将window 添加到TabControl里面的方法

首先
1.window 不能添加到其他控件中,原因是他是最高级的。。
在window usercontrol,以及page,frame 基本都遵循这个道理,可以添加的则是 除window以外的其他窗体。
2.添加到TabControl 下面的TabItem 控件添加usercontrl我遇到的问题是,控件是有window控件手动转成usercontrol 其中有个参数是错误的,无法试下自适应大小:后来手动修改即可
在这里插入图片描述
而window下面的操作是:
在这里插入图片描述
差别还是挺大的。
3.适用的方法:

 public static bool  AddTabcontrol(List<string> TabKeys, TabControl ThisTBC, UserControl ThisWindows){string TagInfo = ThisWindows.Tag.ToString();string[] ThisTagShowArr = TagInfo.Split(',');if (ThisTagShowArr.Length == 2){string ThisKey = ThisTagShowArr[0];string NamaPath = ThisTagShowArr[1];if (!TabKeys.Contains(ThisKey)){TabItem ThisItem = new TabItem();ThisItem.Header= ThisKey;ThisItem.Name = ThisKey;/* ThisItem.Content=  ThisWindows;  */                  //Uri MainTragetUri = new Uri(NamaPath, UriKind.RelativeOrAbsolute);//Frame ThisFrm = new Frame();//ThisFrm.Name = "frameMaim"; //ThisFrm.NavigationUIVisibility = System.Windows.Navigation.NavigationUIVisibility.Hidden;//ThisFrm.JournalOwnership = System.Windows.Navigation.JournalOwnership.UsesParentJournal;//ThisFrm.Source = MainTragetUri;//ThisFrm.Navigate(ThisWindows);ThisItem.Content = ThisWindows;ThisTBC.Items.Add(ThisItem);ThisTBC.SelectedItem = ThisItem;TabKeys.Add(ThisKey);}else{int IndexNo = TabKeys.IndexOf(ThisKey);foreach (TabItem OneItem in ThisTBC.Items){if (OneItem.Name == ThisKey){ThisTBC.SelectedIndex = IndexNo;}}}return true;}else{return false;}}

4.本数据是从网上抄袭下来的:

   public List<TabItem> tabItemsList = new List<TabItem>();public TabControl tabDynamic = null;
tabDynamic = queryControl.GetChildObject<System.Windows.Controls.TabControl>(layOut, "tabDynamic");  //获取TabControl 控件
public void AddTabItem(string uriName){int count = tabItemsList.Count;// create new tab itemTabItem tab = new TabItem();tab.Header = string.Format("Tab {0}", uriName.Split('/')[1]);tab.Name = string.Format("tab{0}", uriName.Split('/')[1]);tab.HeaderTemplate = tabDynamic.FindResource("TabHeader") as DataTemplate;//tab.Background = new SolidColorBrush(Colors.Transparent);//tab.MouseDoubleClick += new MouseButtonEventHandler(tab_MouseDoubleClick);Uri MainTragetUri = new Uri(string.Format("/Freed.Api.Monitor;component/View/{0}.xaml", uriName), UriKind.RelativeOrAbsolute);Frame frame = new Frame();frame.Name = "frameMaim";frame.NavigationUIVisibility = System.Windows.Navigation.NavigationUIVisibility.Hidden;frame.JournalOwnership = System.Windows.Navigation.JournalOwnership.UsesParentJournal;frame.Source = MainTragetUri;tab.Content = frame;// insert tab item right before the last (+) tab itemvar tabOld = (from t in tabItemsList where t.Name == tab.Name select t).FirstOrDefault();if (tabOld == null){if (count > 0){tabItemsList.Insert(count - 1, tab);}else{tabItemsList.Add(tab);}tabDynamic.SelectedItem = tab;}else{tabDynamic.SelectedItem = tabOld;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/396368.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA中的volatile和synchronized关键字详解

1.volatile 保证可见性&#xff1a;当一个变量被声明为volatile&#xff0c;编译器和运行时都会注意到这个变量是共享的&#xff0c;并且每次使用这个变量时都必须从主内存中读取&#xff0c;而不是从线程的本地缓存或者寄存器中读取。这确保了所有线程看到的变量值都是最新的…

家里浮毛多?宠物空气净化器真的有效果吗?

看到朋友养了几只猫狗&#xff0c;感觉很幸福。犹豫了许久之后&#xff0c;还是买了一只猫&#xff0c;也算不用老是去朋友家撸猫&#xff0c;自己在家就可以实现随时随地撸猫。养了猫之后&#xff0c;我的精神状态都变好了并不少&#xff0c;整个人都容光焕发了&#xff0c;朋…

如何快速从文本中找到需要的信息,字典和正则灵活运用

import re #打开文本文件 f open("stock_data.txt",encoding"utf-8") #单独读取第一行数据处理进行分割&#xff0c;末尾换行符去掉 headers f.readline().strip().split(,) print(headers) #定义一个字典&#xff0c;以股标代码做为KEY,每个行做为值 st…

2-2 伺服电机(舵机)(meArm机械臂)

2-2 伺服电机&#xff08;舵机&#xff09;&#xff08;meArm机械臂&#xff09; 2-2 伺服电机&#xff08;舵机&#xff09;介绍直流伺服电机工作原理&#xff08;1&#xff09;首先发出指令给伺服电机&#xff0c;让其旋转90度&#xff08;2&#xff09;伺服电机接收指令&…

未来已来:探索IT行业的革新与大模型技术的突破

摘要&#xff1a; 在数字时代的浪潮中&#xff0c;IT行业正以前所未有的速度迅速发展&#xff0c;带来一系列令人瞩目的革新和进步。 从数据仓库软件市场的显著增长到色觉障碍辅助模式的扩展&#xff0c;再到国产大飞机C919的成功运营,这些新动态不仅展示了技术的力量&#xff…

MySQL学习(20):InnoDB引擎逻辑架构、物理架构

1.InnoDB逻辑结构 &#xff08;1&#xff09;表空间(在磁盘中是后缀为ibd的文件)&#xff1a;一个mysql实例可以对应多个表空间&#xff0c;用于存储记录、索引等数据。 &#xff08;2&#xff09;段&#xff1a;分为数据段、索引段、回滚段。数据段就是B树的叶子节点&#xf…

C语言典型例题31

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 习题2.8 请编写程序将China译为密码&#xff0c;密码的规律是&#xff1a;用原来字母后面的第4个字母代替原来的字母。 例如:C后面的4个字母是G&#xff0c;h后面第4个字母为l 代码&#xff1a; //《C程序设计教程…

初学者入门的可视化超级色彩公式

色彩不仅是视觉元素&#xff0c;也是数据表达的重要工具。在临床数据的可视化过程中&#xff0c;合理的色彩搭配能帮助观众迅速理解数据背后的意义。例如&#xff0c;高危状态的患者可能用红色表示&#xff0c;而健康状态用绿色表示。不同色彩之间的对比度和相对位置将决定数据…

码农的世界,不是只有技术才是王道,《码农职场》带你从另一个角度看职场

码农的职场&#xff0c;一直是一个让人津津乐道的话题&#xff1b;今天也借着这次机会&#xff0c;聊聊我眼中的【码农职场】&#xff0c;以及大佬心中的码农职场。从一幅插画说起 不知这几天从哪里传来的这么一幅画&#xff0c;画风是这样的&#xff1a; 这个故事讲述了一个名…

【数据结构初阶】队列

hello&#xff01; 目录 一、概念与结构 二、队列的实现 Queue.h Queue.c test.c 一、概念与结构 1、概念&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出的特性。 入队列&#xff1a;进行插入操作…

Visual Studio 中的Code Snippet(代码片段)功能介绍

1、Code Snippet(代码片段)功能介绍 平常我们在使用Visual Studio 进行开发时&#xff0c;可以看到Intellisense提示如下内容 这种就是代码片段的提示。如输入cw后&#xff0c;按两次Tab键&#xff0c;即可输入Console.WriteLine(); 代码片段是小块可重用代码&#xff0c;可通…

PyTorch深度学习框架

最近放假在超星总部河北燕郊园区实习&#xff0c;本来是搞前后端开发岗位的&#xff0c;然后带我的副总老大哥比较关照我&#xff0c;了解我的情况后得知我大三选的方向是大数据&#xff0c;于是建议我学学python、Hadoop&#xff0c;Hadoop我看了一下内容比较多&#xff0c;而…

Kafka生产者(二)

1、生产者消息发送流程 1.1 发送原理 在消息发送的过程中&#xff0c;涉及到了两个线程——main 线程和 Sender 线程。在 main 线程中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator&#xff0c;Sender 线程不断从 RecordAccumulator 中拉取…

剖析算法内部结构----------贪心算法

什么是贪心算法&#xff1f; 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在问题求解过程中&#xff0c;每一步都采取当前状态下最优&#xff08;即最有利&#xff09;的选择&#xff0c;从而希望导致最终的全局最优解的算法策略。 贪心算法的核心思想是做选择时&…

StringJoiner更优雅创建含分隔符的字符序列

文章目录 1 why2 what3 how4 练习手段 1 why StringBuilder拼接包含分隔符的字符序列时&#xff0c;分隔符需要一个一个添加&#xff0c;或者需要手动删除末尾冗余的分隔符&#xff0c;代码不美观&#xff0c;不好看。 比如&#xff0c;单个字符串依次拼接时&#xff1a; Stri…

[io]进程间通信 -信号函数 —信号处理过程

sighandler_t signal(int signum, sighandler_t handler); 功能&#xff1a; 信号处理函数 参数&#xff1a; signum&#xff1a;要处理的信号 handler&#xff1a;信号处理方式 SIG_IGN&#xff1a;忽略信号 SIG_DFL&#xff1a;执行默认操作 handler&#xff1a;捕捉信 …

Ubuntu 无法进行SSH连接,开启22端口

我们在VM中安装好Ubuntu 虚拟机后&#xff0c;经常需要使用Xshell等工具进行远程连接&#xff0c;但是会出现无法连接的问题&#xff0c;原因是Ubuntu中默认关闭了SSH 服务。 1、 查看Ubuntu虚拟机IP地址 2、 利用Tabby等工具进行远程连接 命令&#xff1a;ssh ip地址 这里就是…

Ubuntu 20.04 中安装 Nginx (通过传包编译的方式)、开启关闭防火墙、开放端口号

文章目录 前言一、安装包下载二、上传服务器并解压缩三、依赖配置安装四、生成编译脚本五、编译六、查看是否编译完成七、开始安装八、查看是否安装成功九、设置为开机自启动 前言 参考大佬文章并在基础上做了点修改&#xff0c;发篇文章记录下 防止下次遇到。 参考文章&#…

leetcode169. 多数元素,摩尔投票法附证明

leetcode169. 多数元素 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 示例 1&#xff1a; 输入&#xff1a;nums [3,2,3] 输…

Animate软件基本概念:基本工具、工作区和颜色

在我们之前的教程中&#xff0c;有不少同学都在纠结为什么没有讲一些基本概念&#xff0c;其实我们在使用Animate软件时&#xff0c;很少会考虑某一个工具为什么这么称呼&#xff0c;它的原理又是什么&#xff0c;毕竟Animate软件只是工具。而且我们从Flash软件到现在Animate软…