2

我在 ResourceDictionary 中创建了一个 TabItem 并在我的 UserControl 中使用它,但定义的内容不会显示,为什么以及如何解决这个问题?

资源字典:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
    xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit">
    <ControlTemplate x:Key="T1" TargetType="sdk:TabItem">
        <sdk:TabItem>
            <sdk:TabItem.Header>
                <StackPanel Orientation="Horizontal">
                    <sdk:Label Content="{TemplateBinding Header}"/>
                    <Button Content="X" Margin="15,0,0,0"/>
                </StackPanel>
            </sdk:TabItem.Header>

            <toolkit:DockPanel MinWidth="600">
                <Grid toolkit:DockPanel.Dock="Left">
                    <sdk:Label Grid.Row="2" Grid.Column="0" Content="Pic:"/>
                    ...
                </Grid>
            </toolkit:DockPanel>

        </sdk:TabItem>
    </ControlTemplate>
</ResourceDictionary>

用户控件:

<UserControl x:Class="PortView" ....>
    <UserControl.Resources>
                <ResourceDictionary Source="PortfolioTemplateDictionary.xaml" />
    </UserControl.Resources>

    <Grid>
        <sdk:TabItem Template="{StaticResource T1}" Header="Page 2"/>
    </Grid  
    ...
</UserControl>
4

1 回答 1

1

我现在使用了本文中解释的方法:TabItem in a separate XAML

<UserControl x:Class="WpfApplication19.Tab1Data"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         >
    <Grid>
        <TextBlock Text="Tab Data" />
    </Grid>
</UserControl>

<TabControl>
    <TabItem Header="Tab 1">
        <tabData:Tab1Data />
    </TabItem>
</TabControl>
于 2012-07-16T12:04:38.363 回答