0

我在 Silverlight 5 - VS 2012 工作,遇到了一个有趣的问题。

我有一个有 6 个选项卡的选项卡控件。每个选项卡都需要包含多个控件。但是,每个选项卡只能放置一个控件。这似乎不是一个太大的问题,但我不知道如何将多个控件添加到单个选项卡。

是否有我需要修改的属性设置?任何信息将不胜感激。

先感谢您!埃里克

这是我的 XAML: - 注意:我想使用数据网格向选项卡添加一个按钮。

<sdk:TabControl x:Name="tabMain" HorizontalAlignment="Left" Height="307" Margin="176,452,0,0" VerticalAlignment="Top" Width="817" TabStripPlacement="Left">
        <sdk:TabItem Header="Home">
            <Grid/>
        </sdk:TabItem>
        <sdk:TabItem x:Name="tabGatelets" Header="Gatelets" Loaded="tabGatelets_Loaded" GotFocus="tabGatelets_GotFocus">
            <sdk:DataGrid x:Name="grdGatelets" HorizontalAlignment="Left" Height="279" VerticalAlignment="Top" Width="700" Margin="12,0,0,0" AlternatingRowBackground="#FFB4CDCD" AutoGenerateColumns="False" ItemsSource="{Binding Gatelets}">
                <sdk:DataGrid.Columns>
                    <sdk:DataGridTextColumn Header="Name" Binding="{Binding Path=Name}" />
                    <sdk:DataGridTextColumn Header="URL" Binding="{Binding Path=Url}" />
                    <sdk:DataGridTextColumn Header="Binding" Binding="{Binding Path=Binding}" />
                    <sdk:DataGridTextColumn Header="Applications" Binding="{Binding Path=Applications}" />
                </sdk:DataGrid.Columns>
            </sdk:DataGrid>
        </sdk:TabItem>
        <sdk:TabItem Header="Applications">
            <Button x:Name="btnApplications" Content="Applications" HorizontalAlignment="Left" Height="24" VerticalAlignment="Top" Width="89" Margin="357,51,0,0"/>
        </sdk:TabItem>
        <sdk:TabItem Header="Auditing">
            <Button x:Name="btnAudits" Content="Audits" HorizontalAlignment="Left" Height="24" VerticalAlignment="Top" Width="69" Margin="197,133,0,0"/>
        </sdk:TabItem>
        <sdk:TabItem Header="Tracing">
            <Button x:Name="btnTracing" Content="Tracing" HorizontalAlignment="Left" Height="26" VerticalAlignment="Top" Width="92" Margin="193,256,0,0"/>
        </sdk:TabItem>
        <sdk:TabItem Header="About">
            <TextBlock HorizontalAlignment="Left" Height="295" TextWrapping="Wrap" Text="This is where we put stuff about the application." VerticalAlignment="Top" Width="486"/>
        </sdk:TabItem>
    </sdk:TabControl>
4

2 回答 2

0

您需要在每个选项卡控件中添加一个网格,然后将您的内容添加到网格中。有关使用网格控件的文章,请参阅以下链接。

http://www.silverlightshow.net/items/Using-the-Grid-control-in-Silverlight-2-Beta-1.aspx

这应该可以解决您遇到的问题。

于 2013-03-27T15:35:33.477 回答
0

您已经得到了答案,但只是为了为您澄清一般问题:

XAML 中的元素可以有一个内容子级或多个(或没有),具体取决于它们的类型。

TabItem 只能包含一个内容子项,这就是为什么当您尝试添加多个内容时它抱怨已经设置了 Content 属性。其他只能有一个 Content 元素的项目包括 ContentControl、Button 等等。

大多数允许多个孩子的东西都是面板,专门设计用于为多个孩子执行布局。主要的是 Grid(执行行/列布局)和 StackPanel(简单地水平或垂直堆叠子项)。还有其他一些,例如 WrapPanel(它会堆叠,但如果空间不足,则会换行)可能很有用。

因此,您必须将某种 Panel 放入 TabItem 中才能拥有多个孩子。这巧妙地分离了布局逻辑: TabItem 只需要知道它可以容纳一些东西,如果你确实想要多个孩子,你可以根据你想要的布局来切换 Panel 类型。

于 2013-03-28T04:45:51.807 回答