簡體   English   中英

XAML WPF:選項卡控件

[英]XAML WPF: Tab Control

我目前正在為一個簡單的GUI程序進行原型設計,在那里我遇到了我希望通過Tab Control自定義快速修復的問題。 當我們的標簽處於活動狀態時,它們當前設置為“Light Sky Blue”。 我有兩個標簽框,其中一個我想改為Blue Violet。 當我輸入我想要更改的選項卡區域中的顏色代碼時,沒有任何反應。

代碼注意事項:我正在嘗試更改“文件”,“選項”和“幫助”選項卡。 您將能夠在我的代碼中看到我嘗試將背景設置為“BlueViolet”。

如果您需要圖片,請告訴我。

這是我的代碼:

<!---Main Class-->
    <Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="CartTools" Height="700" Width="1135" Name="Practice" FontSize="14" Opacity="1">
    <Window.Resources>
        <!---Tab items for Cart customization-->
        <Style TargetType="{x:Type TabItem}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type TabItem}">
                        <Grid>
                            <Border 
                  Name="Border"
                  Background="LightBlue"
                  BorderBrush="Black" 
                  BorderThickness="1,1,1,1" 
                  CornerRadius="30,6,0,0" >
                                <ContentPresenter x:Name="ContentSite"
                    VerticalAlignment="Center"
                    HorizontalAlignment="Center"
                    ContentSource="Header"
                    Margin="12,2,12,2"/>
                            </Border>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsSelected" Value="True">
                                <Setter TargetName="Border" Property="Background" Value="LightSkyBlue" />
                            </Trigger>
                            <Trigger Property="IsSelected" Value="False">
                                <Setter TargetName="Border" Property="Background" Value="LightGray" />
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <Grid Background="AliceBlue">
        <!---File, Options, Help tabs-->
        <TabControl HorizontalAlignment="Left" Name="TabControl1" Width="215" Margin="0,0,0,286">
            <TabItem Header="File" Name="TabItem1" Background="BlueViolet">
                <Grid>
                    <Label Height="28" Margin="6,6,79,0" Name="Label1" VerticalAlignment="Top">New</Label>
                    <Button Height="23" HorizontalAlignment="Left" Margin="6,40,0,0" Name="Button1" VerticalAlignment="Top" Width="75">Button</Button>
                </Grid>
            </TabItem>
            <TabItem Header="Options" Name="TabItem2" Background="BlueViolet">
                <Grid />
            </TabItem>
            <TabItem Header="Help" Name="TabItem3" Background="BlueViolet">
                <Grid />
            </TabItem>
        </TabControl>
        <!---Cart Management Tabs-->
        <TabControl Margin="251,0,12,12" Name="TabControl2">
            <TabItem Header="CartFunctions" Name="TabItem4">
                <Grid>
                    <RadioButton Height="16" Margin="6,6,0,0" Name="RadioButton1" VerticalAlignment="Top" HorizontalAlignment="Left" Width="120">RadioButton</RadioButton>
                    <RadioButton Height="16" HorizontalAlignment="Left" Margin="6,28,0,0" Name="RadioButton2" VerticalAlignment="Top" Width="120">RadioButton</RadioButton>
                    <CheckBox Height="16" HorizontalAlignment="Left" Margin="6,50,0,0" Name="CheckBox1" VerticalAlignment="Top" Width="120">CheckBox</CheckBox>
                </Grid>
            </TabItem>
            <TabItem Header="Cart Configuration" Name="TabItem5">
                <Grid />
            </TabItem>
            <TabItem Header="Cart I/O" Name="TabItem6">
                <Grid />
            </TabItem>
            <TabItem Header="CMS" Name="TabItem7">
                <Grid />
            </TabItem>
            <TabItem Header="Blocking Database" Name="TabItem8">
                <Grid></Grid>
            </TabItem>
        </TabControl>
    </Grid>
</Window>

謝謝!

使用TemplateBindingControlTemplateControl獲取本地值。

<ControlTemplate TargetType="{x:Type TabItem}">
    <Border Background="{TemplateBinding Background}">
        ...
    </Border>
</ControlTemplate>

然后你會看到兩個不同的背景

<TabControl>
    <TabItem Background="LightSkyBlue" />
    <TabItem Background="BlueViolet" />
</TabControl>

如果只想為IsSelected使用不同顏色為true或false,請在ControlTemplate.Triggers使用TemplateBinding

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM