WPF TabControl 选项卡 控件 美化

WPF 选项卡 控件 美化

目录

效果

​编辑样式

代码


效果

样式

<LinearGradientBrush x:Key="TabItem.Selected.BordernCjh" StartPoint="0,0" EndPoint="0,1">
    <GradientStop Color="#FFE8A6" Offset="0.07" />
    <GradientStop Color="#FFFAEA" Offset="0.1" />
    <GradientStop Color="#FFFAEA" Offset="0.4" />
    <GradientStop Color="#FFE8A6" Offset="0.5" />
</LinearGradientBrush>
<SolidColorBrush x:Key="PrimaryBlueColor" Color="#348EF6"/>
<SolidColorBrush x:Key="SecundaryBlueColor" Color="#EFF2EF"/>
<SolidColorBrush x:Key="PrimaryTextColor" Color="#FFFFFF"/>
<SolidColorBrush x:Key="SecundaryTextColor" Color="#BBC1D1"/>

<!--start Style-->

<!--start tabItem Style
    Foreground="{DynamicResource SecundaryTextColor}"
-->
<Style x:Key="TabItemStyle" TargetType="TabItem">
    <Setter Property="Background" Value="Transparent"/>
    <Setter Property="Foreground" Value="{DynamicResource SecundaryTextColor}"/>
    <!--<Setter Property="FontWeight" Value="Bold"/>-->
    <Setter Property="BorderThickness" Value="0"/>
    <Setter Property="Margin" Value="0 0 5 0"/>
    <Setter Property="Width" Value="100"/>
    <Setter Property="Padding" Value="10 10"/>
    <Setter Property="VerticalAlignment" Value="Top"/>
    <Setter Property="HorizontalAlignment" Value="Left"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="TabItem">
                <Grid SnapsToDevicePixels="True">
                    <Border CornerRadius="5"
                            Background="{TemplateBinding Background}"
                            BorderThickness="{TemplateBinding BorderThickness}"
                            BorderBrush="{TemplateBinding BorderBrush}"
                            Margin="{TemplateBinding Margin}"
                            />
                    <ContentPresenter HorizontalAlignment="Center"
                                      VerticalAlignment="{TemplateBinding VerticalAlignment}"
                                      SnapsToDevicePixels="True"
                                      RecognizesAccessKey="True"
                                      Margin="{TemplateBinding Padding}"
                                      ContentSource="Header"
                                      Focusable="True"/>
                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Background" Value="{DynamicResource SecundaryBlueColor}"/>
                        <Setter Property="Foreground" Value="{DynamicResource PrimaryBlueColor}"/>
                    </Trigger>
                    <Trigger Property="IsSelected" Value="True">
                        <Setter Property="Background" Value="{DynamicResource PrimaryBlueColor}"/>
                        <Setter Property="Foreground" Value="{DynamicResource SecundaryBlueColor}"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
<!--end tabItem Style-->

<!--start tabControl Style-->
<Style x:Key="TabControlStyle" TargetType="TabControl">
    <Setter Property="Background" Value="{DynamicResource SecundaryBlueColor}"/>
    <Setter Property="BorderThickness" Value="0"/>
    <Setter Property="BorderBrush" Value="Transparent"/>
    <Setter Property="Padding" Value="5"/>
    <Setter Property="VerticalAlignment" Value="Center"/>
    <Setter Property="HorizontalAlignment" Value="Center"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="TabControl">
                <Grid SnapsToDevicePixels="True">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="50"/>
                        <RowDefinition Height="*"/>
                    </Grid.RowDefinitions>
                    <!--TabPanel 可以设置 HorizontalAlignment 属性改变选项卡的对齐方式-->
                    <TabPanel Grid.Row="0"
                              Background="Transparent"
                              IsItemsHost="True"
                              />
                    
                    <Border Grid.Row="1"
                            CornerRadius="5"
                            BorderThickness="{TemplateBinding BorderThickness}"
                            BorderBrush="{TemplateBinding BorderBrush}"
                            Background="{TemplateBinding Background}"                                    
                            >
                        <ContentPresenter ContentSource="SelectedContent"
                                          SnapsToDevicePixels="True"
                                          Margin="{TemplateBinding Padding}"/>
                    </Border>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
<!--end tabControl Style-->
    
<!--end Style-->

代码

<Grid Background="{DynamicResource PrimaryBlueColor}">
    <Border CornerRadius="10"
            Padding="30"
            VerticalAlignment="Center"
            HorizontalAlignment="Center"
            Background="{DynamicResource PrimaryTextColor}">
        <TabControl Width="600" Height="450" Style="{DynamicResource TabControlStyle}">
            <TabItem Header="Home" Style="{DynamicResource TabItemStyle}" >
                <Grid>
                    <TextBlock Text="Home"
                               Foreground="{DynamicResource SecundaryTextColor}"
                               FontSize="20"
                               FontWeight="Bold"
                               VerticalAlignment="Center"
                               HorizontalAlignment="Center"
                               />
                </Grid>
            </TabItem>

            <TabItem Header="Home1" Style="{DynamicResource TabItemStyle}">
                <Grid>
                    <TextBlock Text="Home1"
       Foreground="{DynamicResource SecundaryTextColor}"
       FontSize="20"
       FontWeight="Bold"
       VerticalAlignment="Center"
       HorizontalAlignment="Center"
       />
                </Grid>
            </TabItem>

            <TabItem Header="Home2" Style="{DynamicResource TabItemStyle}">
                <Grid>
                    <TextBlock Text="Home2"
       Foreground="{DynamicResource SecundaryTextColor}"
       FontSize="20"
       FontWeight="Bold"
       VerticalAlignment="Center"
       HorizontalAlignment="Center"
       />
                </Grid>
            </TabItem>
        </TabControl>
    </Border>
</Grid>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: WPF(Windows Presentation Foundation)是一种用于创建窗口应用程序的框架。TabControl选项卡控件)是WPF中可以用于组织和切换多个界面内容的重要控件TabControl通常由多个TabItem(选项卡项)组成,每个TabItem代表一个选项卡。可以通过给TabItem的Header属性设置文本或其他可视元素来定义选项卡的标题。当用户在界面上点击某个选项卡时,该选项卡的内容会显示在TabControl的内容区域中。 选项卡控件的优点之一是提供了一种简洁的界面布局方式,可以在有限的空间中展示大量的信息。通过在TabControl中添加多个选项卡,可以实现多个相关的界面内容的切换,使用户可以方便地在不同的内容之间进行导航。 TabControl还可以通过设置SelectedIndex或SelectedValue属性来指定默认显示的选项卡,或者通过代码动态地改变当前选中的选项卡。此外,还可以通过设置TabControl的样式和模板来自定义选项卡的外观和行为,以满足不同的需求。 总之,WPF中的TabControl选项卡控件可以用来组织和切换多个界面内容,具有简洁的界面布局方式和丰富的自定义功能,是开发窗口应用程序时常用的控件之一。 ### 回答2: WPF中的TabControl选项卡是一种常用的界面元素,用于在单个窗口或页面上显示多个相关内容的切换。 TabControl由标签项(TabItem)和内容项(Content)组成。每个标签项都有一个标题,用户可以通过单击标签项来切换到相应的内容项。通常情况下,标签项将显示在TabControl控件的顶部或侧边,内容项将显示在TabControl控件的主体部分。 可以通过ItemsSource属性将TabControl绑定到一个集合对象,每个集合项将作为一个标签项显示在TabControl中。这样可以方便地通过添加或删除集合项来动态地添加或移除标签项。另外,还可以通过SelectedIndex或SelectedValue属性来确定默认显示的标签项。 每个标签项都需要一个内容项与之对应,可以通过Content属性将标签项与内容项关联起来。内容项可以是一个单独的界面元素,也可以是一个完整的用户控件TabControl还提供了一些其他常用的属性和事件,用于设置和响应Tab项的选择状态、样式和行为。例如,可以通过IsEnabled属性来禁用某个标签项,可以通过SelectionChanged事件来处理用户选择不同标签项的操作。 总体而言,WPF中的TabControl选项卡是一种简洁、灵活且易用的界面元素,可以帮助开发者实现多页显示和内容切换功能,提高用户体验和界面交互的便利性。 ### 回答3: WPF中的TabControl是一个常用的控件,用于创建具有多个选项卡的用户界面。它允许用户在不同的选项卡之间切换,并显示当前选中选项卡的内容。 TabControl控件通常包含一个或多个TabItem子控件,每个TabItem代表一个选项卡。每个TabItem通常包含一个Header属性,用于显示在选项卡上的标题。当用户点击不同的选项卡时,TabControl会自动切换到对应的TabItem,显示该选项卡的内容。 TabControl还允许通过添加其他控件或面板作为TabItem的内容来定制每个选项卡的显示。这意味着可以在每个选项卡中添加任意的WPF控件,并根据需要进行布局和设计。 使用TabControl时,可以通过编程方式控制选项卡的切换。可以通过SelectedIndex属性设置当前选中的选项卡索引,或者通过SelectedContent属性直接设置选中的TabItem。此外,还可以通过SelectedIndexChanged事件来监测选项卡的切换。 TabControl还提供了许多附加功能,例如设置选项卡的可见性、禁用或启用选项卡等。可以通过样式和模板来自定义选项卡的外观和行为。 综上所述,WPFPTabControl选项卡是一个非常有用的控件,可以方便地创建多选项卡的用户界面,并且提供了丰富的功能和自定义选项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

StevenChen85

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值