在 Silverlight 中隐藏选项卡 headers
Hiding Tab headers in Silverlight
我尝试了几种方法,但我无法做到。如何在 Silverlight 的选项卡控件中隐藏选项卡 headers。我在互联网上搜索过,但大多数解决方案都是针对 WPF 的。
我有在选项卡之间导航的按钮,但我不想让用户看到 headers。
谢谢。
按照 Martin 的建议,我使用了 Microsoft 模板来解决问题。
首先,site 上的 TabItem 和 TabControl 有很好的默认模板。我用过。
此代码适用于 silverlight 5,对于 silvelight 3 或 4,您需要更改 "sdk"。你需要像我给的网站里的那样使用。
我只是获取了模板的相关部分,我不确定是否获取所有模板并仅更新此相关部分。然而,当像下面的代码那样使用时,即只有模板的相关部分,它工作正常。
<StackPanel Grid.Row ="1" Grid.Column="1" >
<StackPanel.Resources>
<Style TargetType="sdk:TabControl" x:Key="HeaderTemplate">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="sdk:TabControl">
<!--here comes the template-->
<Grid x:Name="TemplateTop" Visibility="Collapsed">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<controlsPrimitives:TabPanel x:Name="TabPanelTop" Margin="2,2,2,-1" Canvas.ZIndex="1" Visibility="Collapsed"/>
<Border MinHeight="10" MinWidth="10" Grid.Row="1" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="0,0,3,3">
<ContentPresenter x:Name="ContentTop" Cursor="{TemplateBinding Cursor}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalAlignment}"/>
</Border>
<Border x:Name="DisabledVisualTop" IsHitTestVisible="False" Opacity="0" Grid.Row="1" Grid.RowSpan="2" Canvas.ZIndex="1" Background="#8CFFFFFF" CornerRadius="0,0,3,3"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</StackPanel.Resources>
<sdk:TabControl Style="{StaticResource HeaderTemplate}">
<sdk:TabItem>
</sdk:TabItem>
<!--your tabes comes here-->
</sdk:TabControl></StackPanel>
我想你可以直接使用
之间的部分
<StackPanel.Resources>...</StackPanel.Resources>
希望对遇到同样问题的人有所帮助。
也有类似的问题和答案here。
我尝试了几种方法,但我无法做到。如何在 Silverlight 的选项卡控件中隐藏选项卡 headers。我在互联网上搜索过,但大多数解决方案都是针对 WPF 的。
我有在选项卡之间导航的按钮,但我不想让用户看到 headers。
谢谢。
按照 Martin 的建议,我使用了 Microsoft 模板来解决问题。
首先,site 上的 TabItem 和 TabControl 有很好的默认模板。我用过。
此代码适用于 silverlight 5,对于 silvelight 3 或 4,您需要更改 "sdk"。你需要像我给的网站里的那样使用。
我只是获取了模板的相关部分,我不确定是否获取所有模板并仅更新此相关部分。然而,当像下面的代码那样使用时,即只有模板的相关部分,它工作正常。
<StackPanel Grid.Row ="1" Grid.Column="1" >
<StackPanel.Resources>
<Style TargetType="sdk:TabControl" x:Key="HeaderTemplate">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="sdk:TabControl">
<!--here comes the template-->
<Grid x:Name="TemplateTop" Visibility="Collapsed">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<controlsPrimitives:TabPanel x:Name="TabPanelTop" Margin="2,2,2,-1" Canvas.ZIndex="1" Visibility="Collapsed"/>
<Border MinHeight="10" MinWidth="10" Grid.Row="1" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="0,0,3,3">
<ContentPresenter x:Name="ContentTop" Cursor="{TemplateBinding Cursor}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalAlignment}"/>
</Border>
<Border x:Name="DisabledVisualTop" IsHitTestVisible="False" Opacity="0" Grid.Row="1" Grid.RowSpan="2" Canvas.ZIndex="1" Background="#8CFFFFFF" CornerRadius="0,0,3,3"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</StackPanel.Resources>
<sdk:TabControl Style="{StaticResource HeaderTemplate}">
<sdk:TabItem>
</sdk:TabItem>
<!--your tabes comes here-->
</sdk:TabControl></StackPanel>
我想你可以直接使用
之间的部分<StackPanel.Resources>...</StackPanel.Resources>
希望对遇到同样问题的人有所帮助。
也有类似的问题和答案here。