公告
财富商城
积分规则
提问
发文
2020-11-09 14:57发布
姐就是有狂的资本
想要自定义用户控件--功能类似tabControl控件的。 改变切换选项卡的方式,自定义成自己想要的效果。 是否可行?
可以。
视图树。
了解一下gdi+到控件的实现,具体直接看control源码就行了(视图树wpf、Android甚至游戏视图树这个肯定是差不多的,注意名词的核心是树,视图本身各种模式肯定区别还是比较大,尤其游戏类)。
当然你可以尝试自己实现简单的类似directui,用gdi+,dx,opengl都可以。
核心在于知道视图(树),以及交互、动画的消息或者事件模型。
要实现你想的控件,你可以直接从control实现,也可以用控件组合;控件组合是相对简单粗暴的方式。
这就是一个自定义控件!
不使用自定义控件的话自己制定容器的show也是可以的!
如果是wpf,重写一下默认控件的模板也许可以。如果是winform,实现方式应该也很多。我想到第一个办法是:写N个自定义控件,放到一个容器里(右边)。左边点击按钮时,用代码替换容器里的自定义控件:伪代码如下:
btn1.click += function() { this.container.children.remove(0); this.container.chidren.Add(a); } btn2.click += function() { this.container.children.remove(0); this.container.chidren.Add(b); }
或者是设置自定义控件是否可见 ---or--- 或者用mdi窗体
最多设置5个标签!
可以。
视图树。
了解一下gdi+到控件的实现,具体直接看control源码就行了(视图树wpf、Android甚至游戏视图树这个肯定是差不多的,注意名词的核心是树,视图本身各种模式肯定区别还是比较大,尤其游戏类)。
当然你可以尝试自己实现简单的类似directui,用gdi+,dx,opengl都可以。
核心在于知道视图(树),以及交互、动画的消息或者事件模型。
要实现你想的控件,你可以直接从control实现,也可以用控件组合;控件组合是相对简单粗暴的方式。
这就是一个自定义控件!
不使用自定义控件的话自己制定容器的show也是可以的!
如果是wpf,重写一下默认控件的模板也许可以。如果是winform,实现方式应该也很多。我想到第一个办法是:写N个自定义控件,放到一个容器里(右边)。左边点击按钮时,用代码替换容器里的自定义控件:伪代码如下:
或者是设置自定义控件是否可见
---or---
或者用mdi窗体