<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. C# 数据结构与算法 操作系统原理 计算机网络原理 数据库开发学习

    https://www.cnblogs.com/edisonchou/p/3843287.html PDF https://files.cnblogs.com/files/netlock/%E6%95 ...

  2. Solon 特性简集,相较于 Springboot 有什么区别?

    Solon 是一个类似Springboot的微型开发框架,也是一个不基于Servlet的开发框架.项目从2018年启动以来,参考过大量前人作品:历时两年,3500多次的commit:内核保持0.1m的 ...

  3. 物联网、5G世界与大数据管理

    物联网带动中国产业转型.推动社会经济发展的时代已经到来.什么是物联网?物联网又给数据管理带来了哪些挑战?面对挑战,我们有怎样的解决方案?本文中我们将一一为您揭晓.     01 物联网时代的到来   ...

  4. Spring源码--debug分析循环依赖--构造器注入

    目的:源码调试构造器注入,看看是怎么报错的. spring:5.2.3 jdk:1.8 一.准备 首先准备两个循环依赖的类:userService和roleServic <bean id=&qu ...

  5. python-OpenCV 使用GrabCut来实现图片的前景与后景的分割

    先上一个效果图: 使用Python3.7+OpenCV 3.x. 需要引入 numpy库. 在图上用鼠标左键和右键标记前景和后景即可.如果需要重新标记图像,关闭程序重新运行. 以下是具体实现代码. # ...

  6. jQuery 库中的 $() 是什么?

    概述: $() 函数是 jQuery() 函数的别称. $() 函数用于将任何对象包裹成 jQuery 对象,接着就被允许调用定义在 jQuery 对象上的多个不同方法. 可以将一个选择器字符串传入 ...

  7. Linux 内核参数 优化

    Linux 内核参数 优化 目录 Linux 内核参数 优化 1.编辑内核配置文件 2.参数及简单说明 3.客户端的典型状态转移参数 4.TCP重传参数 5.实现Nginx高并发的内核参数优化 生效配 ...

  8. 用漫画的形式展现——URL和HTTP

    http请求内容:请求头:get.post等发送请求(其他:head.put.delete.option) host 地址 user-Agent cookie 通行证 head:与get请求类似,不同 ...

  9. Redis的批量操作是什么?怎么实现的延时队列?以及订阅模式、LRU。

    前言 这次的内容是我自己为了总结Redis知识而扩充的,上一篇其实已经总结了几点知识了,但是Redis的强大,以及适用范围之广可不是单单一篇博文就能总结清的.所以这次准备继续总结,因为第一个问题,Re ...

  10. 每日一个linux命令6 -- mv

    mv test.log test1.txt 文件改名 mv test1.log test3 文件移动 mv test1.log test2.log test3.log test4 将1,2,3.log ...