WPF下可编辑Header的Tab控件实现

news/2024/7/8 12:36:47

介绍

有这样一个需求,当用户双击Tab控件Header区域时, 希望可以直接编辑。对于WPF控件,提供一个ControlTemplate在加上一些Trigger就可以实现。效果如下:

 

代码

首先,我们需要给Tab Header设计一个ControlTemplate。类似一个TextBlock,双击进入编辑状态。 所以Xaml如下:

 

 

接下来,我们需要定义个“EditableTabHeaderControl”类,它具有控制TextBox和TextBlock的能力。如下:

    

 

这里有一个问题,当控件进入编辑状态,TextBox变为可见状态时,它不能自动获得focus。一种解决办法是挂一个Timer,每1毫秒轮询一次,检查状态并控制focus。

现在就来添加一个WPF TabControl,并应用ItemContainerStyle。然后双击Header,可以编辑啦~

 

 

许可证

 

本文以及示例代码文件遵循The Code Project Open License(CPOL)。

源码下载

EditableTabHeaderSolution.zip

 

英文链接:Header Editable Tab Control in Wpf


http://www.niftyadmin.cn/n/2639143.html

相关文章

leetcode-28-Implement strStr()

题目描述: Implement strStr().Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. Example 1: Input: haystack "hello", needle "ll" Output: 2 Example 2: Input: haystack &qu…

rsync常见问题及解决办法(亲测)

摘要: rsync在使用中往往会报错误,综合自己亲身经验,总结几条错误的解决方案(IP以10.10.10.10代替): 错误一: password file must not be other-accessible continuing without password file P…

WPF的消息机制(二)- WPF内部的5个窗口之隐藏消息窗口

目录 WPF的消息机制(一)-让应用程序动起来 WPF的消息机制(二)-WPF内部的5个窗口 (1)隐藏消息窗口 (2)处理激活和关闭的消息的窗口和系统资源通知窗口 (3&#x…

(4)剑指Offer之链表相关编程题

一 链表中倒数第k个节点 题目描述: 输入一个链表,输出该链表中倒数第k个结点 问题分析: 一句话概括:两个指针一个指针p1先开始跑,指针p1跑到k-1个节点后,另一个节点p2开始跑,当p1跑到最后时&…

何给背景图像使用CSS3变形

摘要: 如何给背景图像使用CSS3变形呢?在这里,Craig Buckler给出了答案。 CSS3的transform属性可以缩放、倾斜和旋转任何元素。在没有任何浏览器前缀的前提下,这个属性已经被所有的现代浏览器所支持。如果想支持黑莓浏览器和安卓版…

nginx次级域名部署dva静态项目!

这几天为了部署前端项目的事情,头都搞大了。又没有运维的支持,全靠我这个前端开发弄,真是踩了部署的各种坑了。 这里说一下 nginx 次级域名部署基于 dvajs 开发 react 框架的静态项目的注意要点。 基于 dvajs 框架的开发环境搭建,…

软件质量没有银弹:阿里巴巴的25个技术实践与坑

摘要: 在欧洲中世纪的传说中,有一种叫“人狼”的妖怪,就是人面狼身。它们会讲人话,专在月圆之夜去袭击人类。而且传说中对“人狼”用一般的枪弹是不起作用的,普通子弹都伤不到也打不死它,只有一种用银子作成…

asp.net core 框架搭建2-搭建MVC后台管理系统

文章目录 系列文章1.项目搭建1.1 新建Asp.net core MVC项目1.2 ASP.NET Core MVC目录结构1.3 创建一个控制器,与页面数据交互1.4 实现一个登录页面1.5 实现后台管理主界面 2.过程中知识点和涉及到的问题2.1 session的使用2.2 EF Core连接mysql 源码下载 作者&#x…