关闭

Modify Height for SideBarPanelItem (修改SideBarPanelItem高度)

标签: DotNetBarSideBarPanHeight
438人阅读 评论(0) 收藏 举报
分类:

DotNetBar中有个SideBar边栏控件,由于项目的需要,修改SideBarPanelItem的高度,经过Google 百度后,没有得到满意的答案,不得已反编DotNetBar dll文件,经过一系列痛苦的查找,发现SideBarPanelItem只能通过image的大小自动设置高度,而没有提供可修改高度的方法或属性,仔细翻看代码后发现,SideBarPanelItem的高度主要由私有变量rectangle_2控制,而rectangle_2的Height是由变量int_8的值计算而来…

这里写图片描述

不过还是有希望了,既然不允许修改高度,那我就走偏门的方法,用反射解决问题,改它私有变量的值,GetField(“int_8”),尝试多次,总是没有获得int_8的值,于是使用GetFields查看到底有些什么字段,查看后才恍然大悟,DotNetBar dll是经过混淆处理的,变量名早已不是int_8了,通过对混淆前和混淆后的代码比对,发现int_8已经用奇葩符号Ꮫ代替了,然后有了以下的解决方法:

 FieldInfo field = typeof(SideBarPanelItem).GetField("Ꮫ",
                         BindingFlags.NonPublic |
                         BindingFlags.Instance);
            foreach (var item in sideBar1.Panels)
            {
                field.SetValue(item, 20);
            }

这里写图片描述

完美解决,运行后效果:

这里写图片描述

DotNetBar dll版本信息:

这里写图片描述

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1428次
    • 积分:44
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档