0

为什么它的颜色TabItems总是黑色的?我想要Background黑白字母。也Button应该是白色的,但它也是黑色的并且不可见。有一些冲突,但找不到在哪里。有任何想法吗?提前感谢您的帮助。

<UserControl x:Class="Test.Test"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
         xmlns:cal="http://www.caliburnproject.org"   
         xmlns:cm="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"
         mc:Ignorable="d" d:DesignHeight="252" d:DesignWidth="894" Background="#FF111111">    

<Grid>        
    <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Foreground="White" FontSize="48" Margin="70,-14.668,0,0" FontWeight="Light"><Run Language="de-at" Text="test test"/></TextBlock>
    <Button x:Name="Close" Content="➔" HorizontalAlignment="Left" VerticalAlignment="Top" Width="58" Foreground="White" Height="58" RenderTransformOrigin="0.5,0.5" FontSize="40" Margin="-7.625,-8,0,0" Padding="1,-5,1,1" Clip="M50.333,8 L-1.667,8 L-1.667,59.843 L50.333,59.843 z" cm:Message.Attach="Close()">
        <Button.RenderTransform>
            <TransformGroup>
                <ScaleTransform ScaleY="1" ScaleX="-1"/>
                <SkewTransform AngleY="0" AngleX="0"/>
                <RotateTransform Angle="0"/>
                <TranslateTransform/>
            </TransformGroup>
        </Button.RenderTransform>
    </Button>

    <TabControl Margin="42,52,0,0">
        <TabItem Header="Start">

        </TabItem>
            <TabItem Foreground="White" Header="Start 1" >

        </TabItem>
        <TabItem Foreground="White" Header="Start 1">

        </TabItem>
        <TabItem Foreground="White" Header="Start 1">

        </TabItem>
        <TabItem Foreground="White" Header="Start 1">

        </TabItem>
    </TabControl>       
</Grid>

我尝试了很多东西,但没有奏效。所以我所做的就是在TextBlock里面放一个TabItem.Header

<TabItem>
    <TabItem.Header>
        <TextBlock FontSize="25" Text="Start1" />
    </TabItem.Header>
</TabItem>

现在我可以更改TextBlockwith的颜色Foreground。但是如果我点击 不知道如何更改TextBlock颜色TabItem。也许我应该为此开一个新话题。感谢大家的贡献。

4

1 回答 1

1

您根本没有设置您的BackgroundForeground属性TabControl,因此它使用默认颜色。

Background任何Control对象的属性的默认颜色是Brushes.Transparentsource),而默认Foreground属性基于您的系统颜色(source)。

您可以使用隐式样式UserControl.Resources为指定类型的所有对象设置属性,例如对所有 Control 对象使用此样式:

<UserControl.Resources>
    <Style TargetType="{x:Type Control}">
        <Setter Property="Background" Value="Black" />
        <Setter Property="Foreground" Value="White" />
    </Style>
</UserControl.Resources>

或者,如果您可以添加一个新 Brush.Resources并将其设置为SystemColorsx:Key之一的 System Key ,如下所示:

<UserControl.Resources>
    <SolidColorBrush x:Key="{x:Static SystemColors.WindowColorKey}" Color="Black"/>
    <SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrush}" Color="White"/>
</UserControl.Resources>

(您可能需要进行一些测试以确定要使用的正确 SystemColors 键。您可以在此处找到它们的列表)

于 2013-01-25T14:37:56.907 回答