<Window.Resources>
<!-- TabItem的样式 -->
<Style TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<!-- 主Border -->
<Border
Name="bd"
Margin="5,10,5,0"
Background="{TemplateBinding Background}"
BorderBrush="Gray"
BorderThickness="3"
CornerRadius="7">
<ContentPresenter
Margin="20,10"
VerticalAlignment="Center"
ContentSource="Header" />
</Border>
</Grid> <ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="bd" Property="BorderThickness" Value="2" />
<Setter TargetName="bd" Property="Margin" Value="0" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" />
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="Black" />
<Setter Property="FontSize" Value="18" />
</Style> <!-- TabControl的样式 -->
<Style TargetType="{x:Type TabControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabControl}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Padding="10">
<TabPanel IsItemsHost="True" />
</Border>
<Border
Grid.Row="1"
Padding="10"
BorderBrush="Gray"
BorderThickness="2">
<ContentPresenter Name="PART_SelectedContentHost" ContentSource="SelectedContent" />
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources> <TabControl>
<TabItem Background="#FFFFFF72" Header="aaa">test</TabItem>
<TabItem Background="#FFAEFF7A" Header="bbb">
<DockPanel>
<Button DockPanel.Dock="Bottom">hehe</Button>
<TextBox />
</DockPanel>
</TabItem>
<TabItem Background="#FFA6D5FF" Header="ccc">test</TabItem>
</TabControl>

  因为项目的需求,需要做一个类似于商城的选购的页面 ,根据不同的分类来选择不同的商品。

  因为刚开始学习WPF,暂时不知道如何去修改Tab Control的模板,于是按照其他博主的教程,使用Blend来查看控件的构成,于是自己摸索了一下,在网上也看到了一些不错的美化。

  后面我会根据自己的需求来更改,后续的效果图会放在下一篇博客。

    看到一个非常不错的TabControl的美化,转载分享过来了,需要不同的需求的,可以根据自己的需求来更改模板。

  代码放在上面,效果图如下:

效果:

WPF TabControl美化的更多相关文章

  1. WPF TabControl Unload俩次的解决方案

    WPF中,有些控件会多次触发Unload,有点莫名其妙~ Unload的多次触发 TabControl的内容,我是这么设置的: 在TabItem的CacheSettingView中,监听Loaded/ ...

  2. Winform 中tabcontrol 美化

    需要对tabcontrol按照美工出的图进行美化 对tabpage页进行标题设置,首先对整个tabcontrol的DrawMode设置为OwnerDrawFixed,由于需要对标题宽度有要求,设置si ...

  3. WPF TabControl 隐藏标头

    1. 将每个 TabItem 的 Visibility 属性设置为 Visibility.Collapsed 即可隐藏标头 <TabItem Visibility="Collapsed ...

  4. WPF TabControl 模拟动画

    using System; using System.Threading; using System.Windows; using System.Windows.Controls; using Wan ...

  5. WPF TabControl控件-事件相关问题

    TabControl控件的TabItem的Content元素,例如:DataGrid控件,在对事件的处理时,需要对事件的源引起关注,当需要处理DataGrid的事件时,事件会传递到TabControl ...

  6. wpf TabControl控件的SelectionChanged方法

    对于老手来说很简单,但是新手我从百度上找了好久没找到,最后还是去谷歌找到的,哎,万能的google. 前端界面: <TabControl Margin="0,10,0,0" ...

  7. WPF TabControl SelectionChanged 重复执行的问题

    很邪门的问题,我曾经都感觉是微软的bug了. 问题是这样的:在我的tabcontrol下的tabitem中有一个combobox控件,由于一些原因,需要执行tabcontrol的SelectionCh ...

  8. C# Winfrom TabControl美化

    实例一: using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; na ...

  9. wpf tabcontrol内的datagrid的selectionChanged事件向往传递问题

    tabcontrol 内的一个tabitem里是datagrid 当程序相应datagrid的selectionchanged事件后会向上传递到tabcontrol的selectionchanged事 ...

随机推荐

  1. java基础: ArrayList集合应用, ArrayList增删改查详解,综合java基础实现学生管理系统,

    1.ArrayList 集合和数组的区别 : 共同点:都是存储数据的容器 不同点:数组的容量是固定的,集合的容量是可变的 1.1 -ArrayList的构造方法和添加方法 public ArrayLi ...

  2. C#未能找到路径“\bin\roslyn\csc.exe”的一部分。

    主要原因是因为两个库存在,需要生成一个 roslyn文件,但是这个项目是从 vs2017中,打开的,所以,没有必要存在它. 那么就删除这两个关联的库,就可以达到目的 S2017 打开  程序包管理控制 ...

  3. svn忽略idea生成的本地配置文件

    为根目录添加svn属性svn:global-ignores 值为 *.iml .idea 多个值之间用换行分隔

  4. Mac苹果电脑安装虚拟机

    Mac上的虚拟机推荐安装  Parallel Desktop For Mac 1.安装Parallel Desktop 2.下载Windows7 3.用Parallel Desktop安装Window ...

  5. 看了CopyOnWriteArrayList后自己实现了一个CopyOnWriteHashMap

    引言 面试官: 小伙子你有点眼熟啊,是不是去年来这面试过啊. 二胖: 啊,没有啊我这是第一次来这. 面试官: 行,那我们开始今天的面试吧,刚开始我们先来点简单的吧,java里面的容器你知道哪些啊,跟我 ...

  6. svg基础--基本语法与标签

    svg系列–基础 这里会总结svg的基础知识和一些经典的案例. svg简介 SVG(Scalable Vector Graphics)is an XML-based Language for crea ...

  7. 柔性分布式事务关于异步解决方案MQ版

    上述思想本质是 二阶段提交变体 1,2是prepare阶段 4是commit阶段 存在问题 MQ提供半消息支持 生产者提供消息回查功能 发送方多次半消息到MQSERVER  消费方会多次消费消息 生产 ...

  8. LVS之1---工作原理

    LVS之1---工作原理 LVS 介绍 LVS:Linux Virtual Server,Linux虚拟服务器,负载调度器,是一个由章文嵩(花名 正明)博士从1998年开始发起的自由软件项目. 软件作 ...

  9. Android——spinner控件实现读取xml资源,省、市两级互动

    (1)首先在res文件夹下面的values中创建一个省市arrays.xml文件夹,如下 <?xml version="1.0" encoding="utf-8&q ...

  10. 树莓派(4B)新手入门教程

    前期准备 必要物料 树莓派4B 主机 Type-C 电源 内存卡(8G+) 一般建议一步到位64G 系统镜像 镜像写入工具 下载地址 镜像下载 官方下载地址: https://www.raspberr ...