none
wpf tabcontrol 单击事件主窗口里的tabcontrol添加已经设计好的usercontrol 窗口 RRS feed

  • 问题

  • wpf tabcontrol   单击事件主窗口里的tabcontrol添加已经设计好的usercontrol 窗口  

    就是想问问,tabcontrol控件添加窗口的代码怎么写,想找个经典代码太难了,百度大多是没用的,只能到这里问了。

    主页面是mainwindow.xaml   要加载的页面叫test.xaml  继承于为uesecontrol放在根目录的winpages文件夹里

    2015年12月22日 2:45

答案

  • 最简单的方式如下:

    <Window x:Class="MsdnTemp.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:MsdnTemp"
            xmlns:views="clr-namespace:MsdnTemp.Views"
            mc:Ignorable="d"
            Title="MainWindow" Height="350" Width="525"
            Name="root">
        <Grid>
            <Grid.Resources>
            </Grid.Resources>
            <TabControl>
                <TabItem Header="Header1">
                    <views:UserControl1 />
                </TabItem>
                <TabItem Header="Header2">
                    <views:UserControl2 />
                </TabItem>
            </TabControl>
        </Grid>
    </Window>

    其中,我的UserControl是放在Views文件夹下的。

    效果如下:

    这里我用到了TabItem,是因为要给TabControl的每个标签添加标题;其实也可以不需要TabItem,直接把UserControl1,UserControl2放在TabControl的子级。

    如果你需要更加灵活的方式来添加TabContorl的子项,建议使用MVVM方式。



    2015年12月22日 4:08

全部回复

  • WPF TabControl是一个ItemsControl,所以它可以展现基于TabItem为容器元素的集合。最简单,你只需要的只是将你的UserControl装入一个Grid,然后将这个Grid放入一个TabItem,最后将TabItem放入TabControl.Items即可。

    当然,你也可以用Items DataBinding,将TabControl.ItemsTemplate 指向一个DataTemplate, 这个Template中用Grid来包裹你的UserControl。


    Bob Bao

    Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
    你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。

    2015年12月22日 3:17
    版主
  • 最简单的方式如下:

    <Window x:Class="MsdnTemp.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:MsdnTemp"
            xmlns:views="clr-namespace:MsdnTemp.Views"
            mc:Ignorable="d"
            Title="MainWindow" Height="350" Width="525"
            Name="root">
        <Grid>
            <Grid.Resources>
            </Grid.Resources>
            <TabControl>
                <TabItem Header="Header1">
                    <views:UserControl1 />
                </TabItem>
                <TabItem Header="Header2">
                    <views:UserControl2 />
                </TabItem>
            </TabControl>
        </Grid>
    </Window>

    其中,我的UserControl是放在Views文件夹下的。

    效果如下:

    这里我用到了TabItem,是因为要给TabControl的每个标签添加标题;其实也可以不需要TabItem,直接把UserControl1,UserControl2放在TabControl的子级。

    如果你需要更加灵活的方式来添加TabContorl的子项,建议使用MVVM方式。



    2015年12月22日 4:08