遵循XAML代码以满足您的测试需求。
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Name="MainWindow" Title="MainWindow"
Width="600" Height="300">
<Grid>
<TabControl>
<TabControl.Resources>
<Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Border Name="Border" BorderThickness="1,1,1,0" Margin="2,0,2,0">
<ContentPresenter ContentSource="Header"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="Cursor" Value="Hand" />
<Setter TargetName="Border" Property="TextElement.FontWeight" Value="Bold" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TabControl.Resources>
<TabItem>
<TabItem.Header>
<TextBlock Margin="5,2,5,2" TextAlignment="Center">
London
</TextBlock>
</TabItem.Header>
</TabItem>
<TabItem>
<TabItem.Header>
<TextBlock Margin="5,2,5,2" TextAlignment="Center">
Paris
</TextBlock>
</TabItem.Header>
</TabItem>
<TabItem>
<TabItem.Header>
<TextBlock Margin="5,2,5,2" TextAlignment="Center">
Tokyo
</TextBlock>
</TabItem.Header>
</TabItem>
</TabControl>
</Grid>
</Window>
如何在XAML中为TabHeader
设置MouseOver事件/触发器?
以下代码无效;
<Setter TargetName="Border" Property="TextElement.FontWeight" Value="Bold" />
这里有什么建议吗?
如何在XAML中为TabHeader
设置MouseOver事件/触发器?
答案 0 :(得分:0)
试试这个:
<Setter TargetName="Border" Property="TextElement.FontWeight" Value="Bold" />
或者这个:
<Setter Property="FontWeight" Value="Bold" />
修改强>
如果要更改将TextBlock
属性设置为的单个Header
元素的属性,则不能使用TabItem
样式。您可以使用HeaderTemplate
:
<TabControl>
<TabControl.Resources>
<Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Border Name="Border" BorderThickness="1,1,1,0" Margin="2,0,2,0">
<ContentPresenter ContentSource="Header"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="Cursor" Value="Hand" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<DataTemplate x:Key="HeaderTemplate">
<TextBlock Margin="5,2,5,2" TextAlignment="Center" Text="{Binding}">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType=TabItem}}" Value="True">
<Setter Property="FontWeight" Value="Bold" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</TabControl.Resources>
<TabItem Header="London" HeaderTemplate="{StaticResource HeaderTemplate}">
</TabItem>
<TabItem Header="Paris" HeaderTemplate="{StaticResource HeaderTemplate}">
</TabItem>
<TabItem Header="Tokyo" HeaderTemplate="{StaticResource HeaderTemplate}">
</TabItem>
</TabControl>