vczh-libraries / GacUI

GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features.
Other
2.34k stars 298 forks source link

列表 listview(bug: 滚动条的滑块应该大一点) #73

Closed bizehao closed 8 months ago

bizehao commented 2 years ago

列表数量一多,鼠标在不同项之间悬浮,悬浮效果感觉有点慢,卡的那种感觉

vczh commented 2 years ago

你试试release?debug因为我开了内存泄漏跟踪,很容易就会变得比较卡。

bizehao commented 2 years ago

你试试release?debug因为我开了内存泄漏跟踪,很容易就会变得比较卡。

确实,用release很丝滑。还有个问题,就是列表数量太多的时候,列表的滑块会变得非常小,很难鼠标拖动,我查找api,发现滑块没有设置最小高度的,希望能加一个。

vczh commented 2 years ago

GacUI认为控件不应该管太多,跟功能无关的东西都是做在皮肤里面的。默认的皮肤在这里: https://github.com/vczh-libraries/GacUI/blob/master/Source/Skins/DarkSkin/Template_Scroll.xml#L138 https://github.com/vczh-libraries/GacUI/blob/master/Source/Skins/DarkSkin/Template_Scroll.xml#L181

<PartialView>加上PrefferedMinSize属性就行了,跟同一个文件下面tracker的皮肤一样。H滚动条就加上非零x,V滚动条就加上非零y。

编译的话就调用GacBuild.ps1去跑Resource.xml,你会看到Source目录下的C++文件改了。

再调用Codepack.exe去跑CodegenConfig.xml,你会发现GacUI/Release下面几个C++文件改了。

你把改了的文件替换掉Resource repo的几个就好了,如无意外的话应该只有DarkSkin.cpp一个文件有改动。

不过你说的也有道理,等我把VlppParser2和Document的东西修完之后,我就来看看具体怎么做。之所以我之前没有设置PreferredMinSize,是因为这样做会使的滚动条本身不能比PreferredMinSize更小,而现在的皮肤在滚动条缩到特别小的时候会只剩下两个按钮,跟Windows的行为保持一致。但是如果你自己的app的滚动条永远都不会缩小到那个份上的话,你可以直接改。

bizehao commented 2 years ago

ok 非常感谢

vczh commented 1 year ago

后来我发现数据极端多的话滑块甚至会消失,确实应该至少hardcode一个最小宽度。

bizehao commented 1 year ago

是啊,现在主要缺少个xml标签提示的编辑器,我通过gacui提供的反射生成的xsl应用到xml里,用vscode编辑时,还是很不方便,提示不太好

vczh commented 8 months ago

没想到github还能因为我在commit上说修掉了这个bug就把它close了。不过代码还在这个repo里没进release,很快下个版本号就出来了。