你的位置:首页 > 软件开发 > ASP.net > WPF自适应可关闭的TabControl 类似浏览器的标签页

WPF自适应可关闭的TabControl 类似浏览器的标签页

发布时间:2016-06-29 00:00:07
效果如图:虽然说是自适应可关闭的TabControl,但TabControl并不需要改动,不如叫自适应可关闭的TabItem.大体思路:建一个用户控件,继承自TabItem,里面放个按钮,点击的时候在TabControl中移除自身.在添加,移除TabItem和TabControl ...

效果如图:

WPF自适应可关闭的TabControl 类似浏览器的标签页

虽然说是自适应可关闭的TabControl,但TabControl并不需要改动,不如叫自适应可关闭的TabItem.

大体思路:建一个用户控件,继承自TabItem,里面放个按钮,点击的时候在TabControl中移除自身.在添加,移除TabItem和TabControl尺寸变化时,通过Items的个数计算合适的Width.

新建用户控件

新建用户控件,并继承自TabItem,这样它就拥有TabItem所有的属性和事件.而这个功能不需要自定义依赖属性和事件.它的用法就和TabItem完全一样.

建完后把UserControl换成TabItem,去掉多余部分

WPF自适应可关闭的TabControl 类似浏览器的标签页

后台继承自UserControl改成继承自TabItem

WPF自适应可关闭的TabControl 类似浏览器的标签页

更改样式添加关闭按钮

在Xmal里添加一个自己喜欢的样式,最主要的是在Template里添加一个按钮,注册一个Click事件,用于关闭.

WPF自适应可关闭的TabControl 类似浏览器的标签页WPF自适应可关闭的TabControl 类似浏览器的标签页
 1 <Style TargetType="{x:Type TabItem}"> 2       <Setter Property="BorderBrush" Value="Black"></Setter> 3       <Setter Property="Background" Value="White"></Setter> 4       <Setter Property="Foreground" Value="Black"></Setter> 5       <Setter Property="Padding" Value="5,0,0,0"></Setter> 6       <Setter Property="HorizontalAlignment" Value="Left"></Setter> 7       <Setter Property="VerticalAlignment" Value="Center"></Setter> 8       <Setter Property="HorizontalContentAlignment" Value="Left"></Setter> 9       <Setter Property="VerticalContentAlignment" Value="Center"></Setter>10       <Setter Property="Template">11         <Setter.Value>12           <ControlTemplate TargetType="{x:Type TabItem}">13             <Border CornerRadius="5,0,0,0" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">14               <Grid>15                 <Grid.ColumnDefinitions>16                   <ColumnDefinition Width="*"></ColumnDefinition>17                   <ColumnDefinition Width="20"></ColumnDefinition>18                 </Grid.ColumnDefinitions>19                 <ContentPresenter Grid.Column="0" ContentSource="Header" Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"></ContentPresenter>20                 <Button Grid.Column="1" Name="btn_Close" Click="btn_Close_Click"></Button>21               </Grid>22             </Border>23             <ControlTemplate.Triggers>24               <Trigger Property="IsSelected" Value="true">25                 <Setter Property="Background" Value="#FFFF923E"></Setter>26                 <Setter Property="Foreground" Value="White"></Setter>27               </Trigger>28             </ControlTemplate.Triggers>29           </ControlTemplate>30         </Setter.Value>31       </Setter>32     </Style>

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:WPF自适应可关闭的TabControl 类似浏览器的标签页

关键词:wpf

wpf
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。