0
我已将ControlTemplate
更改为TabItem
以为选项卡设置关闭按钮。以下是我的XAML:xaml中的事件处理
<ControlTemplate x:Key="TabItemControlTemplate" TargetType="{x:Type TabItem}">
<Border BorderThickness="1" BorderBrush="DarkGray" CornerRadius="0,4,0,0">
<Grid Name="Panel">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0.3*" />
</Grid.ColumnDefinitions>
<ContentPresenter x:Name="ContentSite" VerticalAlignment="Center" HorizontalAlignment="Center" ContentSource="Header" Margin="10,2" />
<Button x:Name="closeButton" Background="Transparent" Grid.Column="1" Click="Button_Click" Width="15" Height="15" BorderThickness="0" Margin="0,0,2,0">
<Button.Template>
<ControlTemplate TargetType="Button">
<Grid Background="Transparent">
<Ellipse x:Name="backgroundEllipse" />
<Path x:Name="ButtonPath" Margin="3" Stroke="{StaticResource NormalForegroundBrush}" StrokeThickness="1.5" StrokeStartLineCap="Square" StrokeEndLineCap="Square" Stretch="Uniform" VerticalAlignment="Center" HorizontalAlignment="Center">
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigure StartPoint="0,0">
<LineSegment Point="25,25" />
</PathFigure>
<PathFigure StartPoint="0,25">
<LineSegment Point="25,0" />
</PathFigure>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="backgroundEllipse" Property="Fill" Value="{StaticResource HoverBackgroundBrush}" />
<Setter TargetName="ButtonPath" Property="Stroke" Value="{StaticResource HoverForegroundBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Panel" Property="Background" Value="SkyBlue" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter TargetName="Panel" Property="Background" Value="White" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Visibility" Value="Collapsed" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
在上面ControlTemplate
,我想处理在XAML本身,即点击事件,使标签项目隐藏这个被点击时。我怎样才能做到这一点?
你想只是将TabItems Visibility设置为Hidden/Collapsed,或者你是否真的想将它从TabControl中移除?无论哪种方式,我不认为只有XAML才能实现,事件处理程序总是以代码的形式编写。 – GregaMohorko
我只想切换可见性 – Abhishek
有两种可能的解决方案:或者使用ToggleButton,就像他在答案中提到的Saman,或者为Button.Clicked触发器创建故事板,并将可见性设置为隐藏在那里。 – GregaMohorko