当前位置:   article > 正文

WPF中使用TabControl为每个页签添加不同窗体的方法。_wpf tab

wpf tab

注:每一个页签添加不同窗体,其实不能叫是窗体,只能叫做控件。我这么起标题主要是方便一些新手来搜索答案。

项目需求:

对于一些上位机控制程序来说,一个窗体根本放不下所有的功能,所以我们通常会使用TabControl控件来进行分类布局。通过选择分类选项卡,来展示不同的功能界面。

下面上一个简单Demo

一、先建立一个主窗口MainWindow.xaml

  1. <Window x:Class="TabControlTest.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. xmlns:local="clr-namespace:TabControlTest"
  7. mc:Ignorable="d"
  8. Title="MainWindow" Height="450" Width="800">
  9. <Window.Resources>
  10. </Window.Resources>
  11. <Grid>
  12. <TabControl x:Name="tabControl" SelectionChanged="tabControl_SelectionChanged">
  13. <TabItem Header="第一">
  14. <Grid x:Name="p1" Background="Yellow" />
  15. </TabItem>
  16. <TabItem Header="第二">
  17. <Grid x:Name="p2" Background="Black"/>
  18. </TabItem>
  19. <TabItem Header="第三">
  20. <Grid x:Name="p3" Background="OrangeRed"/>
  21. </TabItem>
  22. <TabItem Header="第四">
  23. <Grid x:Name="p4" Background="Green"/>
  24. </TabItem>
  25. </TabControl>
  26. </Grid>
  27. </Window>

效果如图:

 二、再创建4个子界面

我们可以右键项目名称,添加一个文件夹,取名为子窗口。然后右键子窗口,添加-用户控件(WPF).

win1.xaml子控件窗口代码

  1. <UserControl x:Class="TabControlTest.子窗口.win1"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:TabControlTest.子窗口"
  7. mc:Ignorable="d" Background="Black" Foreground="Red"
  8. d:DesignHeight="450" d:DesignWidth="800">
  9. <Grid>
  10. <TextBlock Text="这是第一个页面"/>
  11. </Grid>
  12. </UserControl>

我这里一共建了4个控件。

三、打开主窗口代码,对控件进行绑定

首先给TabControl创建一个SelectionChanged的事件,再加入事件代码

  1. private void tabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
  2. {
  3. int index = (sender as TabControl).SelectedIndex;
  4. win1 w1 = new win1();
  5. win2 w2 = new win2();
  6. win3 w3 = new win3();
  7. win4 w4 = new win4();
  8. switch (index)
  9. {
  10. case 0:
  11. this.p1.Children.Add(w1);
  12. break;
  13. case 1:
  14. this.p2.Children.Add(w2);
  15. break;
  16. case 2:
  17. this.p3.Children.Add(w3);
  18. break;
  19. case 3:
  20. this.p4.Children.Add(w4);
  21. break;
  22. }
  23. }

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/407840
推荐阅读
相关标签
  

闽ICP备14008679号