Set an image when a tabitem is selected

余生长醉 提交于 2019-12-14 03:56:43

问题


I am new with the wpf and I cannot figure out how should I set an image when a tab item is selected.

I write a style but it doesnt work. It shows me anything...

<Style TargetType="TabItem">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="TabItem">
                <Grid>
                   <StackPanel Orientation="Horizontal">
                       <HeaderedItemsControl Name="img"  >
                       </HeaderedItemsControl>
                   </StackPanel>
                </Grid>
             <ControlTemplate.Triggers>
             <Trigger Property="IsSelected" Value="True">
                   <Setter Property="Visibility" TargetName="img" Value="Visible"/>    
             </Trigger>      
             <Trigger Property="IsSelected" Value="False">
                   <Setter Property="Visibility" TargetName="img" Value="Hidden"/>
             </Trigger>
         </ControlTemplate.Triggers>      
       </ControlTemplate>     
     </Setter.Value>      
   </Setter>     
 </Style>     

For the tab control I wrote the code:

 <TabControl Name="tabControl1"  
             HorizontalAlignment="Left"                  
             VerticalAlignment="Top" 
             Height="311" 
             Width="503">
    <TabItem Name="tabItem1" Background="Red"  >                
            <TabItem.Header>
                <Grid>
                    <TextBlock Text="   First" Width="100" Margin="-2,33,4,16" />
                    <Image  Name="img" Source="menu.png" Height="20" Margin="0,60,0,0" />
                </Grid>

            </TabItem.Header>
            <Grid>

            <TextBox Name="denumire" Margin="31,20,169,67" Height="20" Width="60"/>
            </Grid>

        </TabItem>
    <TabItem Name="tabItem2" Header="tabItem2" Background="Red">
        </TabItem>
    </TabControl>

回答1:


In your style, change the HeaderedItemsControl to something like this:

<HeaderedItemsControl>
    <TextBlock Text="{TemplateBinding Header}" Width="100"/>
    <Image x:Name="img" Source="menu.png" Height="20" />
</HeaderedItemsControl>

and remove the entire <TabItem.Header> section in your TabControl.



来源:https://stackoverflow.com/questions/8780750/set-an-image-when-a-tabitem-is-selected

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!