2015-11-26 44 views
0

我有TabItem的自定义标题样式:C#WPF TabItem的选择不完全工作

<Style TargetType="{x:Type TabItem}" x:Key="purpleTab"> 
     <Setter Property="Background" Value="#E5E5E5"/> 
     <Setter Property="Width" Value="97"/> 
     <Setter Property="Height" Value="70"/> 
     <Setter Property="Padding" Value="0"/> 
     <Setter Property="Margin" Value="0"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="TabItem"> 
        <Border Name="Border" BorderThickness="0,0,0,2" BorderBrush="#E5E5E5"> 
         <ContentPresenter x:Name="ContentSite" 
            VerticalAlignment="Center" 
            HorizontalAlignment="Center" 
            ContentSource="Header" Width="97" Height="66"/> 
        </Border> 
        <ControlTemplate.Triggers> 
         <Trigger Property="IsSelected" Value="True"> 
          <Setter TargetName="Border" Property="BorderBrush" Value="#1F1F1F" /> 
         </Trigger> 
         <Trigger Property="IsSelected" Value="False"> 
          <Setter TargetName="Border" Property="BorderBrush" Value="#E5E5E5" /> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

而且我的TabItem是这样的:

<TabItem x:Name="AccTabItem" 
    Style="{DynamicResource purpleTab}"> 
<TabItem.Header> 
    <StackPanel Orientation="Vertical"> 
     <Image Height="30" Width="30" Margin="0 10 0 0" 
       Source="{Binding IsSelected, ElementName=AccTabItem, 
      Converter={StaticResource IsSelectedToIconSourceConverter}, 
      ConverterParameter=ac}"/> 
     <TextBlock Text="{DynamicResource Account}" FontSize="12" Margin="0 6 0 0" 
        Foreground="{Binding IsSelected, ElementName=AccTabItem, 
      Converter={StaticResource IsSelectedToForegroundColor}}" HorizontalAlignment="Center"/> 
    </StackPanel> 
</TabItem.Header> 
<view:UserSettingsView/> 
</TabItem> 

我的问题是,当我点击了图片或文本(在标签标题中)它选择了标签,但它并未在选项卡标题区域的其余部分中进行选择。我如何设置选择以处理图像和文本元素(为整个标题区域工作)?

+0

你可以发布你所看到的屏幕截图,你会是什么希望看到? – ChrisF

+0

这里: https://my.pcloud.com/publink/show?code=XZx61zZHlwtgHzgjV7fNF7mCQqtgVMl0bcV 这不是我所看到的,而是点击标题区域的哪部分工作。我希望这张照片能更好地解释它。 –

回答

0

添加例如透明Background在你的风格的Border

<Border Name="Border" BorderThickness="0,0,0,2" BorderBrush="#E5E5E5" Background="Transparent"> 

默认背景设置为{x:Null}

+0

好的!非常感谢;)工作,因为我想要的。 –