好的,我到处搜索,在我遇到问题的每个链接中都用xaml
代码解释了。
我想在 WPF 项目中更改活动选项卡的背景和前景(不是其内容,而是您选择以使其处于活动状态的上部),但我正在寻找 C# 代码。下面的代码对我不起作用:
if (tabs[0].IsEnabled) tabs[0].Background = Brushes.Blue;
else tabs[0].Background = Brushes.Black;
好的,我到处搜索,在我遇到问题的每个链接中都用xaml
代码解释了。
我想在 WPF 项目中更改活动选项卡的背景和前景(不是其内容,而是您选择以使其处于活动状态的上部),但我正在寻找 C# 代码。下面的代码对我不起作用:
if (tabs[0].IsEnabled) tabs[0].Background = Brushes.Blue;
else tabs[0].Background = Brushes.Black;
如果您使用 WPF,请在 XAML 中执行此操作。
您可以绑定到 TabControl 的属性ItemsSource
。不仅仅是定义一个Styletrigger来改变背景
好的,感谢Venson
我终于得到了它,以防万一有人想知道它是如何工作的:
<TabControl ItemsSource="{Binding tabs}" Height="68" HorizontalAlignment="Left" Margin="156,23,0,0" Name="tabControl1" VerticalAlignment="Top" Width="268">
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<Border
Margin="0,0,-4,0"
Background="Black"
BorderBrush="Blue"
BorderThickness="1,1,1,1"
CornerRadius="2,12,0,0" >
<ContentPresenter x:Name="ContentSite"
VerticalAlignment="Center"
HorizontalAlignment="Center"
ContentSource="Header"
Margin="12,2,12,2"
RecognizesAccessKey="True"/>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="Blue"></Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<Border
Margin="0,0,-4,0"
Background="Green"
BorderBrush="Blue"
BorderThickness="1,1,1,1"
CornerRadius="2,12,0,0" >
<ContentPresenter x:Name="ContentSite"
VerticalAlignment="Center"
HorizontalAlignment="Center"
ContentSource="Header"
Margin="12,2,12,2"
RecognizesAccessKey="True"/>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
此代码位于and<Grid>
的<Window>
标签中MainWindow.xaml
public MainWindow()
{
testClass testObject = new testClass();
testObject.tabs = new List<TabItem>();
testObject.tabs.Add(new TabItem());
testObject.tabs.Add(new TabItem());
testObject.tabs[0].Header = "NO WAY";
testObject.tabs[1].Header = "ON WAY";
testObject.tabs[0].Content = "WHAT";
testObject.tabs[1].Content = "HELL";
InitializeComponent();
this.DataContext = testObject ;
}
class testClass
{
public List<TabItem> tabs { set; get; }
}
这进入MainWindow.xaml.cs
文件。
请注意:颜色仅供测试,请勿因选择的对比度差而评判我!
不过,我不知道是否可以不使用其他课程。
foreach(var tab in tabs)
{
tab.Background = tab.IsEnabled ? Brushes.Blue :Brushes.Black;
}
但是您可以在活动选项卡更改时处理选项卡控件的状态,并设置停用和激活选项卡的背景。