如何在Silverlight中放置标签页的内容?

时间:2020-03-06 14:29:41  来源:igfitidea点击:

当我将控件放置在Silverlight中的选项卡上时,控件向下放置约10个像素,右侧放置约10个像素。例如,以下xaml:

<System_Windows_Controls:TabControl x:Name=TabControlMain Canvas.Left="0" Canvas.Top="75" Width="800" Height="525" Background="Red" HorizontalContentAlignment="Left" VerticalContentAlignment="Top" Padding="0" Margin="0">
        <System_Windows_Controls:TabItem Header="Test" VerticalContentAlignment="Top" BorderThickness="0" Margin="0" Padding="0" HorizontalContentAlignment="Left">
            <ContentControl>
                <Grid Width="400" Height="200" Background="White"/>
                </ContentControl>
        </System_Windows_Controls:TabItem>    
</System_Windows_Controls:TabControl>

将产生:

替代文字http://i34.tinypic.com/8z1u1t.jpg

如何将内容定位为0,0?

解决方案

检查TabItem的控件模板,它的默认裕度可能为10.

看一下控件模板,它的边距为该大小。使用blend修改选项卡控件模板的副本。

在花了几个小时后才解决这个问题。布莱恩完全正确。当前版本的VS不允许更改TabControl的模板,但是可以使用Blend来完成,并且模板上有空白。这样做的主要缺点是XAML文件将不再可从Visual Studio预览。

我们还可以为内容添加负边距。我发现该值为9像素...

<System_Windows_Controls:TabControl x:Name=TabControlMain Canvas.Left="0" Canvas.Top="75" Width="800" Height="525" Background="Red" HorizontalContentAlignment="Left" VerticalContentAlignment="Top" Padding="0" Margin="0">
        <System_Windows_Controls:TabItem Header="Test" VerticalContentAlignment="Top" BorderThickness="0" Margin="0" Padding="0" HorizontalContentAlignment="Left">
            <ContentControl>
                <Grid Width="400" Height="200" Margin="-9,-9,-9,-9" Background="White"/>
                </ContentControl>
        </System_Windows_Controls:TabItem>    
</System_Windows_Controls:TabControl>