0

私は Silverlight 5 - VS 2012 で作業しており、興味深い問題に遭遇しました。

6 つのタブを持つタブ コントロールがあります。各タブには、いくつかのコントロールを含める必要があります。ただし、タブごとに配置できるコントロールは 1 つだけです。これはそれほど大きな問題ではないようですが、1 つのタブに複数のコントロールを追加する方法がわかりません。

変更が必要なプロパティ設定はありますか? どんな情報でも大歓迎です。

前もって感謝します!エリック

これが私の XAML です: - 注: Data Grid を使用してタブにボタンを追加したいと考えています。

<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 の要素は、その型に応じて、コンテンツの子を 1 つ持つことも、多数 (またはまったく持たない) こともできます。

TabItem には単一のコンテンツの子のみを含めることができます。そのため、複数のコンテンツを追加しようとすると、既に Content プロパティが設定されていると不平を言いました。Content 要素を 1 つだけ持つことができるその他のアイテムには、ContentControl、Button などがあります。

複数の子を許可するほとんどのものはパネルであり、複数の子のレイアウトを実行するように特別に設計されています。主なものは Grid (行/列のレイアウトを実行する) と StackPanel (単純に子を水平または垂直に積み重ねる) です。WrapPanel (スタックしますが、スペースがなくなるとラップする) のような便利なものもあります。

したがって、複数の子を持つためには、ある種の Panel を TabItem に配置する必要があります。これにより、レイアウト ロジックがきれいに分離されます。TabItem は、それが何かを保持できることを認識しているだけであり、複数の子が必要な場合は、レイアウトの方法に応じて Panel タイプを切り替えることができます。

于 2013-03-28T04:45:51.807 に答える