Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在silverlight中更改tabItem的标题背景_Silverlight_Silverlight 4.0_Tabcontrol - Fatal编程技术网

在silverlight中更改tabItem的标题背景

在silverlight中更改tabItem的标题背景,silverlight,silverlight-4.0,tabcontrol,Silverlight,Silverlight 4.0,Tabcontrol,如何更改TabItem中标题的颜色 tabItem1.Background = new SolidColorBrush(Colors.Red);//This is not changing background tabItem1.BorderBrush = new SolidColorBrush(Colors.Red);//This change header border color 使用选项卡控件上的HeaderTemplates,然后在代码隐藏中更改它们,例如: <Data

如何更改TabItem中标题的颜色

tabItem1.Background = new SolidColorBrush(Colors.Red);//This is not changing background
tabItem1.BorderBrush = new SolidColorBrush(Colors.Red);//This change header border color

使用选项卡控件上的HeaderTemplates,然后在代码隐藏中更改它们,例如:

    <DataTemplate x:Key="InvalidTabHeader">
        <Border BorderBrush="Red" BorderThickness="1">
            <StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Left">
                <TextBlock Text="{Binding}"></TextBlock>
            </StackPanel>
        </Border>
    </DataTemplate>

    <DataTemplate x:Key="ValidTabHeader">
        <StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Left">
            <TextBlock Text="{Binding}"></TextBlock>
        </StackPanel>
    </DataTemplate>

然后在选项卡项XAML中

<sdk:TabItem Header="My Tab" x:Name="MyTab" HeaderTemplate="{StaticResource ValidTabHeader}">

然后您可以在视图代码中执行此类操作:

var invalidTabStyle=Resources[无效的\u TABITEM\u HEADER\u TEMPLATE]作为数据模板

var validTabStyle=资源[有效的\u选项卡项\u标题\u模板]作为数据模板


myTabItem.HeaderTemplate=errorCnt==0?validTabStyle:invalidTabStyle

使用选项卡控件上的HeaderTemplates,然后在代码隐藏中更改它们,例如:

    <DataTemplate x:Key="InvalidTabHeader">
        <Border BorderBrush="Red" BorderThickness="1">
            <StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Left">
                <TextBlock Text="{Binding}"></TextBlock>
            </StackPanel>
        </Border>
    </DataTemplate>

    <DataTemplate x:Key="ValidTabHeader">
        <StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Left">
            <TextBlock Text="{Binding}"></TextBlock>
        </StackPanel>
    </DataTemplate>

然后在选项卡项XAML中

<sdk:TabItem Header="My Tab" x:Name="MyTab" HeaderTemplate="{StaticResource ValidTabHeader}">

然后您可以在视图代码中执行此类操作:

var invalidTabStyle=Resources[无效的\u TABITEM\u HEADER\u TEMPLATE]作为数据模板

var validTabStyle=资源[有效的\u选项卡项\u标题\u模板]作为数据模板


myTabItem.HeaderTemplate=errorCnt==0?validTabStyle:invalidTabStyle

不幸的是,很常见的情况是,即使是一些相当简单的功能也需要您自己对现有控件进行模板化(或者像Myles建议的那样,您只需用自己的控件覆盖默认UI)

这种情况下的问题是,现有的TabItem template假设所选选项卡将具有白色(#FFFFFFFF)背景,其硬编码到模板中(这在许多默认模板中非常常见)

您应该注意,您的背景值将影响未选择的选项卡,尽管您的<代码>红色不是实心的,因为粉红色渐变


我的建议是咬紧牙关,复制TabItem的默认模板,然后根据需要进行操作。这种方法在不添加额外不必要的UI元素的情况下为您提供了更大的灵活性。

不幸的是,即使是一些相当简单的功能也需要您自己对现有控件进行模板化(或者像Myles建议的那样,您只需用自己的控件覆盖默认UI)

这种情况下的问题是,现有的TabItem template假设所选选项卡将具有白色(#FFFFFFFF)背景,其硬编码到模板中(这在许多默认模板中非常常见)

您应该注意,您的背景值将影响未选择的选项卡,尽管您的<代码>红色不是实心的,因为粉红色渐变


我的建议是咬紧牙关,复制TabItem的默认模板,然后根据需要进行操作。这种方法在不添加额外不必要的UI元素的情况下为您提供了更大的灵活性。

我已经在关注您的解决方案,似乎我想要的问题是,它在该选项卡标题区域上显示框状,而不是在中间显示所有标题。我已经在关注您的解决方案,似乎我想要的问题是它在选项卡标题区域上显示框,而不是所有标题,它在中间显示broder