0

私がやろうとしていることが可能かどうかはわかりません...

しかし、私がしようとしているのは、とUserControlの間に a を入れることですが、余白を好きなだけ入れることができません。TabHeaderTabContent

これはStyler私がすべてに適用したものですTab-Control

 <Style x:Key="TabItemStyle" TargetType="{x:Type TabItem}">
        <Setter Property="FontFamily" Value="Trebuchet MS"/>
        <Setter Property="FontSize" Value="13"/>
        <Setter Property="Foreground" Value="#FFFFFFFF"/>
        <Setter Property="Header" Value="{Binding Content.DataContext.HeaderInfo, RelativeSource={RelativeSource Self}}"  />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type TabItem}">
                    <Grid Width="Auto" Height="Auto" x:Name="TabItemRoot" Margin="10,0,5,0">
                        <ContentPresenter Margin="10,5,0,5" x:Name="Content" ContentSource="Header" RecognizesAccessKey="True"/>
                        <Border x:Name="border" Height="Auto" Padding="0,0,0,0" Opacity="0">
                            <Border.Background>
                                <RadialGradientBrush>
                                    <GradientStop Color="#A3FFFFFF" Offset="0"/>
                                    <GradientStop Color="#00FFFFFF" Offset="1"/>
                                </RadialGradientBrush>
                            </Border.Background>
                        </Border>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsSelected" Value="true">
                            <Setter TargetName="border" Property="Opacity" Value="1"/>
                            <Setter TargetName="Content" Property="Opacity" Value="1"/>
                        </Trigger>
                        <Trigger Property="IsSelected" Value="false">
                            <Setter TargetName="Content" Property="Opacity" Value="0.5"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
</Style>

マージンを設定するたびに、コンテンツは移動しますが、コントロールは移動しません。

4

1 に答える 1

0

次のようなアイテムだけでなく、TabControlのControlTemplateを定義することをお勧めします。

    <TabControl>
        <TabControl.Style>
            <Style TargetType="TabControl">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="TabControl">
                            <StackPanel>
                                <TabPanel IsItemsHost="True" />
                                <Border Margin="10" BorderBrush="Blue" Background="Green" Width="100" Height="100" />
                                <ContentPresenter ContentSource="SelectedContent" />
                            </StackPanel>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </TabControl.Style>

編集: 私はまだあなたがやりたいことを本当に理解していませんが、TabHeaderとTabContentの間に何かを置くために、TabItemsのテンプレートとして次のようなものを思い付くことができます:

<ControlTemplate TargetType="TabItem">
    <Border BorderBrush="Black" BorderThickness="5">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition />
            </Grid.RowDefinitions>

            <ContentPresenter ContentSource="Header" Grid.Row="0" />

            <TextBlock Grid.Row="1">Usercontrol goes here</TextBlock>
        </Grid>
    </Border>
</ControlTemplate>
于 2012-07-25T14:30:06.120 に答える