2009-05-29 1 views

答えて

2

その場所にコンテンツを配置する簡単な方法はありませんが、方法があります。これを行うには、TabControlのデフォルトのControlTemplateを無効にする必要があります。

ほとんどのシステムのテーマはGridので、同じように(タブがある)TabPanelとタブの内容を置く:だからあなたはグリッドに別のContentControlにを追加することができ

<ControlTemplate TargetType="{x:Type TabControl}"> 
        <Grid KeyboardNavigation.TabNavigation="Local" 
          SnapsToDevicePixels="true" 
          ClipToBounds="true"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition x:Name="ColumnDefinition0"/> 
          <ColumnDefinition x:Name="ColumnDefinition1" 
               Width="Auto"/> 
         </Grid.ColumnDefinitions> 
         <Grid.RowDefinitions> 
          <RowDefinition x:Name="RowDefinition0" 
              Height="Auto"/> 
          <RowDefinition x:Name="RowDefinition1" 
              Height="*"/> 
         </Grid.RowDefinitions> 
         <TabPanel x:Name="HeaderPanel" 
            Panel.ZIndex ="1" 
            KeyboardNavigation.TabIndex="1" 
            Grid.Column="0" 
            Grid.Row="0" 
            Margin="2,2,2,0" 
            IsItemsHost="true"/> 

         <Border x:Name="ContentPanel" 
           BorderThickness="0,0,1,1" 
           BorderBrush="#D0CEBF" 
           KeyboardNavigation.TabNavigation="Local" 
           KeyboardNavigation.DirectionalNavigation="Contained" 
           KeyboardNavigation.TabIndex="2" 
           Grid.Column="0" Grid.ColumnSpan="2" 
           Grid.Row="1"> 
... 

... 

... 
         </Border> 
        </Grid> 
... 
       </ControlTemplate> 

とそれが結合していカスタム添付プロパティ。デフォルトのControlTemplatesには、オーバーフロー処理を制御する多くのトリガがあり、追加のUI要素がそれを妨げないようにする必要があります。

あなたはタブコントロールの向きやオーバーフローに対処する必要がない場合は、しかし、かなり迅速にこのような何かを得ることができる必要があります:

Three TabItems with a Red Border and TextBlock http://img35.imageshack.us/img35/3237/tabpanelexample.png

幸運!

関連する問題