2013-03-27 102 views
0

我正在使用Silverlight 5 - VS 2012,并遇到了一个有趣的问题。Silverlight选项卡控件 - 一个选项卡上的多个控件

我有一个选项卡控件有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> 
+0

添加多个控件时,在xaml编辑器中是否出现某种错误? – Stainedart 2013-03-27 15:26:13

+0

呃...通过XAML添加控件给了我内容属性已经设置的错误。 – 2013-03-27 15:33:41

回答

0

你已经得到了答案,但我只想澄清你的一般问题:在XAML

元素可以有一个内容孩子或多个(或无),根据其类型。

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

允许多个孩子的大多数事情是面板,并且是专门设计用于执行多个孩子的布局。主要的是Grid(它执行行/列布局)和StackPanel(它简单地堆叠儿童水平或垂直)。还有其他一些像WrapPanel(如果空间不足,它会堆叠但是会包装),这可能很有用。

因此,您必须将某种Panel放入TabItem才能拥有多个子项。这将布局逻辑整齐地分开:该TabItem只需要知道它可以容纳,并且如果您确实需要多个子项,则可以根据您希望的布局切换面板类型。

+1

谢谢邓肯。这确实清除了一切!我很感激! – 2013-03-28 17:18:34