C# 为什么不显示metro选项卡项的关闭按钮?
我试图通过编程方式添加C# 为什么不显示metro选项卡项的关闭按钮?,c#,wpf,tabcontrol,mahapps.metro,tabitem,C#,Wpf,Tabcontrol,Mahapps.metro,Tabitem,我试图通过编程方式添加MetroTabItem MainWindow.xaml.cs private void AddTabItem(UserControl control,string Header) { MetroTabItem mahtab = new MetroTabItem(); mahtab.Content = control; mahtab.DataContext = control;
MetroTabItem
MainWindow.xaml.cs
private void AddTabItem(UserControl control,string Header)
{
MetroTabItem mahtab = new MetroTabItem();
mahtab.Content = control;
mahtab.DataContext = control;
mahtab.Header = Header;
mahtab.CloseButtonEnabled = true;
mahtab.Style = (Style)FindResource("TabItem");
mahtab.IsSelected = true;
maintab.Items.Add(mahtab);
}
MainWindow.xaml
<Style x:Key="TabItem" BasedOn="{StaticResource MetroTabItem}" TargetType="{x:Type Controls:MetroTabItem}">
<Setter Property="CloseButtonEnabled" Value="True"></Setter>
<Setter Property="Controls:ControlsHelper.HeaderFontSize" Value="20"></Setter>
</Style>
当我这样添加时,
TabItem
标题字体大小正常,但CloseButtonEnabled
不正常。为什么请告诉我。谢谢。您使用了错误的基本样式(MetroTabItem
)。您必须继承无键MetroTabItem
样式,如下所示:
<Style x:Key="TabItem" BasedOn="{StaticResource {x:Type Controls:MetroTabItem}}" TargetType="{x:Type Controls:MetroTabItem}">
<Setter Property="CloseButtonEnabled" Value="True"></Setter>
<Setter Property="Controls:ControlsHelper.HeaderFontSize" Value="20"></Setter>
</Style>
希望这能有所帮助。您将错误的基本样式(
MetroTabItem
)用于自己的样式。您必须继承无键MetroTabItem
样式,如下所示:
<Style x:Key="TabItem" BasedOn="{StaticResource {x:Type Controls:MetroTabItem}}" TargetType="{x:Type Controls:MetroTabItem}">
<Setter Property="CloseButtonEnabled" Value="True"></Setter>
<Setter Property="Controls:ControlsHelper.HeaderFontSize" Value="20"></Setter>
</Style>
希望这能有所帮助。这两个选项之间有什么区别?其中之一是自定义TabItem类(MetroTabItem),它使用隐式主题样式。另一个是为所有默认WPF选项卡项设置的样式键(MetroTabItem)的名称。因此,如果要覆盖自定义TabItem类MetroTabItem,则必须从主题样式继承。这两个类之间有什么区别?其中之一是使用隐式主题样式的自定义TabItem类(MetroTabItem)。另一个是为所有默认WPF选项卡项设置的样式键(MetroTabItem)的名称。因此,如果要覆盖自定义TabItem类MetroTabItem,则必须从主题样式继承。