锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C#开源 / HandyControl、HandyControl用法、HandyControl例子代码剖析
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。点名“简易百科”和闲暇巴盗用锐英源原创内容。

HandyControl、HandyControl用法、HandyControl例子代码剖析


HandyControl是.NET平台下的控件库,我在用WPF开发时,使用了HandyControl,对HandyControl的第一印象是,这个开源项目应该不是一个人在维护,至少会有团队,一个人团队做的库,我见过,没有这么大气的形式。

HandyControl用法也简单,在gitee和github上也都有介绍,导入些环境要素,就可以使用了。我找的例子里,直接引用了HandyControl的库,然后在写xaml里,就可以用工具栏拖出来HandyControl的控件,也可以手写<hc:这样的形式。

WPF我用的少,处理TabControl有点麻烦,自己写界面需要参考,搜索网络上的TabControl信息不全面,想到HandyControl里有例子,就打开看下,所以HandyControl例子代码分析里主要讲了TabControl部分,其它部分比较少。TabControl例子的界面如下:

HandyContro的选项卡界面

如图可以看到,选项卡TabControl的位置在左右上下都可以,随心选用。

打开例子代码,在HandyControlDemo_Code下找到TabControlDemoCtl.xaml,右边设计窗口显示:无效标记。不过这不影响使用,大家不要紧张。

上面说的是View,ViewModel是TabControlDemoViewModel.cs,另外还有TabItem.cs和TabControl.cs这些重写控件的源代码。

我们先看xaml内容,

  <TabControl TabStripPlacement="Right">
                    <TabItem Header="{ex:Lang Key={x:Static langs:LangKeys.Title}}" HeaderStringFormat="{}{0}1">
                        <Border Background="{DynamicResource PrimaryBrush}">
                            <TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}">
                                <Run Text="{ex:Lang Key={x:Static langs:LangKeys.Text}}"/>
                                <Run Text="1"/>
                            </TextBlock>
                        </Border>
                    </TabItem>
                    <TabItem Header="{ex:Lang Key={x:Static langs:LangKeys.Title}}" HeaderStringFormat="{}{0}2" IsEnabled="False">
                        <Border Background="{DynamicResource SuccessBrush}">
                            <TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}">
                                <Run Text="{ex:Lang Key={x:Static langs:LangKeys.Text}}"/>
                                <Run Text="2"/>
                            </TextBlock>
                        </Border>
                    </TabItem>
                    <TabItem Header="{ex:Lang Key={x:Static langs:LangKeys.Title}}" HeaderStringFormat="{}{0}3">
                        <Border Background="{DynamicResource InfoBrush}">
                            <TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}">
                                <Run Text="{ex:Lang Key={x:Static langs:LangKeys.Text}}"/>
                                <Run Text="3"/>
                            </TextBlock>
                        </Border>
                    </TabItem>
                    <TabItem Header="{ex:Lang Key={x:Static langs:LangKeys.Title}}" HeaderStringFormat="{}{0}4">
                        <Border Background="{DynamicResource WarningBrush}">
                            <TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}">
                                <Run Text="{ex:Lang Key={x:Static langs:LangKeys.Text}}"/>
                                <Run Text="4"/>
                            </TextBlock>
                        </Border>
                    </TabItem>
                    <TabItem Header="{ex:Lang Key={x:Static langs:LangKeys.Title}}" HeaderStringFormat="{}{0}5">
                        <Border Background="{DynamicResource DangerBrush}">
                            <TextBlock Style="{StaticResource TextBlockLargeBold}" Foreground="{DynamicResource TextIconBrush}">
                                <Run Text="{ex:Lang Key={x:Static langs:LangKeys.Text}}"/>
                                <Run Text="5"/>
                            </TextBlock>
                        </Border>
                    </TabItem>
                </TabControl>

上面的代码在例子右上角的</>按钮可以在运行状态直接看到。

TabStripPlacement="Right"表示按钮在哪个位置。

<TabItem Header="{ex:Lang Key={x:Static langs:LangKeys.Title}}" HeaderStringFormat="{}{0}1">名称在资源里,按参数格式化处理。

Border有边框更美观。

TabControl要求每个TabItem要带内容控件,带内容控件容易做MDI界面,但这点并不符号我要求,后来找到按钮组功能,觉得比较适合。按钮组功能界面如下:

handycontrol按钮组

使用按钮组,在并列的功能里选定一项,每个按钮不用带内容控件,切换时没压力。

很多程序员没有美工能力,所以参考一些经典开源项目的界面来写界面,会有好处。

HandyControl开源
友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内