Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF选项卡项-图像绑定-使用触发器_Wpf_Binding_Tabcontrol_Tabitem - Fatal编程技术网

WPF选项卡项-图像绑定-使用触发器

WPF选项卡项-图像绑定-使用触发器,wpf,binding,tabcontrol,tabitem,Wpf,Binding,Tabcontrol,Tabitem,我想在TabControl中显示标题标题内的图像 这个问题()似乎是对的,但我使用了触发器,这对我的代码没有帮助 以下是我所提供的: <TabControl Name="MainTabControl" Margin="0,28,0,0" TabStripPlacement="Top" > <TabControl.Resources> <Image x:Key="imgProfile" Source="/Icons/red icons/pr

我想在TabControl中显示标题标题内的图像

这个问题()似乎是对的,但我使用了触发器,这对我的代码没有帮助

以下是我所提供的:

 <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>

  • 从TabItem.HeaderTemplate到TabItem.Tag的绑定必须通过TabItem类型的FindAncestor进行

  • 而是在资源中创建图像,创建BitmapImage,并将其绑定到Image.Source

  • 因此,资源:

    <BitmapImage x:Key="imgProfile" Source="/Icons/red icons/profile.png" />
    <BitmapImage x:Key="imgComment" Source="Icons/red icons/notification.png" />
    
    
    
    标题数据模板:

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