使用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 item
            TabItem 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 item
            var 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;
            }
        }
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: WPFTabControl是常用的界面控件之一,可以通过它来实现选项卡切换的功能。下面是在WPF添加TabControl的具体步骤: 1.首先在WPF页面的XAML代码中加入TabControl控件。 2.在TabControl添加选项卡(TabItem)。 3.在每个选项卡中添加控件,这些控件会被绑定到相应的TabItem上。 4.可以通过设置TabControl的属性来调整控件内部的显示效果。 下面是一个添加TabControl的示例: <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfApp1" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <Grid> <TabControl> <TabItem Header="选项卡1"> <TextBlock Text="这是选项卡1的内容。" Margin="10"/> </TabItem> <TabItem Header="选项卡2"> <TextBlock Text="这是选项卡2的内容。" Margin="10"/> </TabItem> </TabControl> </Grid> </Window> 在这个示例中,我们向TabControl添加了两个选项卡TabItem,每个选项卡中又包含了一个TextBlock控件。我们可以通过TabControl的属性,比如Margin,来调整控件在选项卡中的显示效果。 以上就是在WPF添加TabControl的基本步骤。通过TabControl,我们可以方便地实现选项卡切换的功能,和呈现不同的控件。 ### 回答2: WPFTabControl是一种非常常用的控件,可以让用户轻松切换不同的界面,提高用户交互效果。 在WPF中,我们可以通过以下步骤添加TabControl: 1. 打开Visual Studio新建WPF项目,选择窗口,在窗口中拖拽TabControl控件。 2. 点击MainWindow.xaml页面中的TabControl控件,可以看到TabControl下出现了TabItems标签。 3. 按需要添加新的TabItems标签,每个标签中可以添加自己的控件,实现不同的功能界面。 4. 如果需要在TabControl添加动态的TabItems,则可以在代码中使用ItemsControl类进行处理。该类提供了Add()、Remove()等方法,可以方便地实现TabItems的添加和移除操作。 注意,如果需要对TabControl进行样式或模板的修改,则可以通过在控件的Style属性中设置对应的样式或模板来实现。例如,可以设置TabControl的背景色、TabItems的字体样式等等。 总之,WPFTabControl控件非常适用于需要实现多个界面切换的应用程序,使用起来也非常简单方便。 ### 回答3: WPF TabControl是一个非常常用的控件,在WPF中可以通过添加TabItem元素来添加选项卡。我们可以在TabControl添加任意数量的TabItem元素,并在每个TabItem元素中添加任何类型的控件。 首先,在XAML文件中添加TabControl元素,然后在TabControl元素中添加TabItem元素。每个TabItem元素都有一个“Header”属性,用于指定选项卡的标题。例如: <TabControl> <TabItem Header="选项卡1"> <!-- 在这里添加选项卡1的内容 --> </TabItem> <TabItem Header="选项卡2"> <!-- 在这里添加选项卡2的内容 --> </TabItem> </TabControl> 可以在TabItem元素中添加任何类型的控件,例如按钮、文本框、列表框等等。在每个TabItem元素中,可以使用垂直或水平布局,以显示所需的控件。例如,在选项卡1中添加一个文本框和一个按钮: <TabControl> <TabItem Header="选项卡1"> <StackPanel Orientation="Vertical"> <TextBox Width="200" Height="20" Margin="5"/> <Button Content="保存" Width="60" Height="25" Margin="5"/> </StackPanel> </TabItem> <TabItem Header="选项卡2"> <!-- 在这里添加选项卡2的内容 --> </TabItem> </TabControl> 通过这种方式,我们可以轻松地添加任意数量的选项卡和控件。在WPF的设计中,使用选项卡来切换不同的功能和界面非常方便,也很容易实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值