0

我正在尝试创建一个基本上包含选项卡项的用户控件。如下并尝试将其添加到另一个库中的我的选项卡控件中。

//Grid.xaml in a.dll

<UserControl x:Name="Grid" x:Class="SomeClass"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">

    <TabItem Header="Grid">
        <DataGrid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
    </TabItem>

</UserControl>

//TabView.xaml in b.dll
<UserControl
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:Views="clr-namespace:SomeClass;assembly=SomeAssembly" x:Class="SomeClass" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">

    <TabControl HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >

        <Views:GridView/>

        <TabItem Header="This" />
        <TabItem Header="That" />


    </TabControl>
</UserControl>

我的问题是,它实际上在那里创建了选项卡,但没有显示选项卡的标题。我想知道我是否做得对,如何显示标题?

4

1 回答 1

0

您的问题是您在 a.dll 中的控件不是 TabItem。它是用户控件。您可以从 TabItem 继承它(这对 WPF 来说是一种糟糕的方式)或使用组合:

//Grid.xaml in a.dll
<UserControl x:Name="Grid" x:Class="SomeClass"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">

    <DataGrid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>

</UserControl>


//TabView.xaml in b.dll
<UserControl
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:Views="clr-namespace:SomeClass;assembly=SomeAssembly" x:Class="SomeClass" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">

    <TabControl HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >

        <TabItem Header="Grid">
            <Views:GridView/>
        </TabItem>

        <TabItem Header="This" />
        <TabItem Header="That" />


    </TabControl>
</UserControl>
于 2012-06-03T11:16:36.513 回答