2009-03-24 10 views
4

私はヘッダー、メインコンテンツとフッターで構築されたシェルウィンドウを持っています。 メインコンテンツはタブコントロールです。 デザインによれば、タブ項目のコンテンツ(ユーザーコントロール)の1つは、フッター上で少し拡張する必要があります。 最初に私はこれにマイナスの余裕を持たせることを考えましたが、私が何をしても、常に自分のコンテンツの上に描かれました。 WPFの問題:別のコントロールの上にコントロールを描画する必要があります

は、たとえば次のXAMLを考慮してください。

私は赤フッターの上に重なって、画面somewhowの底に到達するために黄色のStackPanelを作って達成したいと思う何
<Grid> 
    <Grid.RowDefinitions> 
    <RowDefinition Height="33*"/> 
    <RowDefinition Height="33*"/> 
    <RowDefinition Height="33*"/> 
    </Grid.RowDefinitions> 
    <StackPanel Background="Blue" Grid.Row="0"/> <!-- Header --> 
    <StackPanel Background="Red" Grid.Row="2"/> <!-- Footer --> 
    <TabControl Grid.Row="1" > <!-- Content --> 
    <TabItem> 
     <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="33*"/> 
      <ColumnDefinition Width="33*"/> 
      <ColumnDefinition Width="33*"/> 
     </Grid.ColumnDefinitions> 
     <StackPanel Grid.Column="1" Background="Yellow" > 
      <Button Width="100" Height="50" Content="Text" /> 
     </StackPanel> 
     </Grid> 
    </TabItem> 
</TabControl> 

希望します。アリエル

答えて

1

問題は、タブコントロール内に含まれるのStackPanelをしたいということですが、あなたはそれがタブコントロールの下部を超えて拡張します。これは、タブコントロールではサポートされていません。

+0

それは本当です!私は回避策を探しています – ArielBH

+0

回避策は、このためのカスタムコントロールを作成することです。または、デザインを再考してください。なぜあなたはこれをやりたいのか、努力する価値があると思うのか分かりません。 – Will

+0

あなたは知っている、デザイナー.... – ArielBH

4

は、このサンプルコードを試してみてください ありがとう:

<Grid> 
    <Grid.RowDefinitions> 
    <RowDefinition Height="33*"/> 
    <RowDefinition Height="33*"/> 
    <RowDefinition Height="33*"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
    <ColumnDefinition Width="33*"/> 
    <ColumnDefinition Width="33*"/> 
    <ColumnDefinition Width="33*"/> 
    </Grid.ColumnDefinitions>  
    <StackPanel Grid.ColumnSpan="3" Background="Blue" Grid.Row="0"/> <!-- Header --> 
    <StackPanel Grid.ColumnSpan="3" Background="Red" Grid.Row="2"/> <!-- Footer --> 
    <TabControl Grid.ColumnSpan="3" Grid.Row="1"> <!-- Content --> 
    <TabItem> 
     <Grid> 
      <Button Width="100" Grid.Column="1" Height="50" Content="Text" />   
     </Grid> 
    </TabItem> 
    </TabControl> 
    <StackPanel Grid.Column="1" Grid.Row="3" Background="Yellow" /> 
</Grid> 
+0

ありがとう、あなたは誤解されました。タブコントロールの下部ではなく、画面の下部。黄色のスタックパネルは、赤色のスタックパネルの上に重なる必要があります。 – ArielBH

+0

ああ私の悪い...私の答えはちょっと変わったよ:) – Arcturus

+0

いいえ、Grid.Rowを2に変更するとフッターが完全に消えてしまいます。黄色のStackPanelだけがタブコントロール全体ではなく赤色になりたい。 – ArielBH

1

間違いなく、TabControlが問題です。たぶん独自のTabControlを作成しようとします。

乾杯。

関連する問題