2017-11-07 30 views
1

を使用してこの質問(WPF TabItem - Image Binding)が右であるようだが、私はトリガを使用している、それは私には助けにはならないのTabControlWPFのTabItem - 画像バインディング - 私は画像を表示したいトリガ

のヘッダのタイトルの中にコード。ここで

は、私が提供したものです:

<TabControl Name="MainTabControl" Margin="0,28,0,0" TabStripPlacement="Top" > 
      <TabControl.Resources> 
<Image x:Key="imgProfile" Source="/Icons/red icons/profile.png" /> 
<Image x:Key="imgComment" Source="Icons/red icons/notification.png" /> 

       <Style TargetType="TabItem" > 
        <Setter Property="HeaderTemplate"> 
         <Setter.Value> 
          <DataTemplate> 
           <WrapPanel> 
            <TextBlock Text="{Binding}" 
          MouseDown="UIElement_OnMouseDown" 
           FontSize="18"  
          /> 
            <Image Height="25" Margin="4,0,4,0" 
    Source="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=Tag.Source}" /> 
           </WrapPanel> 
          </DataTemplate> 
         </Setter.Value> 
        </Setter> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate TargetType="TabItem"> 
           <Border Name="Border" BorderThickness="1,1,1,0" BorderBrush="Gainsboro" CornerRadius="0" Margin="2,0"> 
            <ContentPresenter x:Name="ContentSite" 
             VerticalAlignment="Center" 
             HorizontalAlignment="Center" 
             ContentSource="Header" 
             Margin="5,2"/> 
           </Border> 
           <ControlTemplate.Triggers> 
            <Trigger Property="IsSelected" Value="False"> 
             <Setter TargetName="Border" Property="BorderBrush" Value="Transparent" /> 
             <Setter TargetName="Border" Property="Background" Value="Transparent" /> 
             <Setter Property="Foreground" Value="{DynamicResource TabItemNormal}"/> 

            </Trigger> 
           </ControlTemplate.Triggers> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Style> 
      </TabControl.Resources> 

<TabItem Name="tiProfile" Header="a" Tag="{StaticResource imgProfile}"></TabItem> 
<TabItem Name="tiComment" Header="b" Tag="{StaticResource imgComment}"></TabItem> 
</TabControl> 

答えて

1
  1. をTabItem.HeaderTemplateからTabItem.Tagへの結合のTabItemタイプのFindAncestor経由でなければなりません。

  2. 代わりに、リソースに画像を作成し、BitmapImageを作成してImage.Sourceにバインドします。

ので、資源:

<BitmapImage x:Key="imgProfile" Source="/Icons/red icons/profile.png" /> 
<BitmapImage x:Key="imgComment" Source="Icons/red icons/notification.png" /> 

ヘッダーのDataTemplate:

<Image Height="25" Margin="4,0,4,0" 
     Source="{Binding Tag, Mode=OneWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TabItem}}}" /> 
関連する問題