【问题标题】:Customized Content of TabItem WPFTabItem WPF 的自定义内容
【发布时间】:2010-12-08 21:09:39
【问题描述】:

我目前有一个自定义 TabItem,它有一个自定义标头,它被定义为 Style 的一部分,如下所示:

<Setter Property="Template">
     <Setter.Value>
         <ControlTemplate TargetType="{x:Type t:TwitterListTabItem}">
             <Border x:Name="Bd" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0" Margin="0,-2,0,0" >
                 <Grid SnapsToDevicePixels="true">
                     <ContentPresenter x:Name="Content" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" ContentSource="Header" RecognizesAccessKey="True" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="{TemplateBinding Padding}"/>
                     <Button x:Name="PART_Close"  HorizontalAlignment="Right" Margin="0" Padding="4"  VerticalAlignment="Top" Width="16" Height="16" Style="{DynamicResource CloseableTabItemButtonStyle}" ToolTip="Close Tab">
                         <Path x:Name="Path" Stretch="Fill" StrokeThickness="0.5" Fill="#FFFFFF" Data="F1 M 2.28484e-007,1.33331L 1.33333,0L 4.00001,2.66669L 6.66667,6.10352e-005L 8,1.33331L 5.33334,4L 8,6.66669L 6.66667,8L 4,5.33331L 1.33333,8L 1.086e-007,6.66669L 2.66667,4L 2.28484e-007,1.33331 Z " HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
                     </Button>
                     <Button x:Name="PART_Number"  HorizontalAlignment="Right" Padding="0" Margin="0" VerticalAlignment="Bottom" Width="16" Height="16" Style="{DynamicResource CloseableTabItemNumberStyle}" ToolTip="New Tweets" Content="{TemplateBinding NewTweetsNumber}" />
                 </Grid>
             </Border>

             <ControlTemplate.Triggers>
                 .....Triggers Removed for Shortness....
             </ControlTemplate.Triggers>
         </ControlTemplate>
     </Setter.Value>
</Setter

现在我想为TabItem 的内容区域设置模板。我无法弄清楚如何做到这一点。我曾尝试设置 ContentTemplate,使用包含 ListBox&lt;ControlTemplate&gt;,但它不起作用。

那么我如何定义一个模板来控制内容呢?

提前致谢

【问题讨论】:

    标签: c# wpf controltemplate tabitem


    【解决方案1】:

    将 TabItem.HeaderTemplate 属性用于选项卡标题,将 TabItem.Template 属性用于选项卡内容。 Example.

    【讨论】:

    • 给出错误“System.Windows.Controls.ControlTemplate”不是 Setter 上“System.Windows.Controls.HeaderedContentControl.HeaderTemplate”属性的有效值。
    • 这里有一个如何使用两个模板属性的例子:msdn.microsoft.com/en-us/library/…
    【解决方案2】:

    看起来您还需要一个显示内容的 ContentPresenter。而且您已经有一个 ContentPresenter 显示标题。

    <ContentPresenter ContentSource="Content"/>
    

    【讨论】:

    • 我以前看过这个,但它并没有解决我的问题,因为它不会让我定义里面的控件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    相关资源
    最近更新 更多