WPF ScrollViewer 的BUG

Jave.Lin 2013-11-15 06:25:49
不正常时:


正常时:


这两图中,第二张,非常要设置一个高度才正常;
这样,ScrollViewer才不会把第一行与第三行的内容都算在里面;

怎么回事,大家有没遇到过?
...全文
380 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jave.Lin 2013-11-18
  • 打赏
  • 举报
回复
最后我是在,我自己第9楼回复的内容基础上,那红色框中的代码,高度再减10像素即可; row2.Height = new GridLength(ActualHeight - row1.ActualHeight - row3.ActualHeight - 10);//减多10像素 不过这里:GridLength(pixelValue)中,pixelValue要过滤<0则赋为=0的情况; 因为我试过,把窗体高度,拉到最小时,这里会有负数; 在WPF中,可见元素大小不能为负数;
Jave.Lin 2013-11-18
  • 打赏
  • 举报
回复
引用 10 楼 lerbornjames 的回复:
因为是auto吧.. auto是根据内容而自动撑高.. 定了高就当然没问题了..
我把带滚动条的放在Grid.Row="1"(第二行) 不应该把Grid.Row="0"与Grid.Row="2"的内容都挤走了。 问题就在这; 不过我用另一种方式解决了。
Jave.Lin 2013-11-18
  • 打赏
  • 举报
回复
引用 11 楼 qq873113580 的回复:
解决了?。。。。。。
恩,解决了。。。 我连续三次回复,我自己都发不了言了。。。 我要再次吐槽这个CSDN的贴子管理制作的问题!!!
q107770540 2013-11-17
  • 打赏
  • 举报
回复
Teln_小凯 2013-11-17
  • 打赏
  • 举报
回复
解决了?。。。。。。
叫我猫爷_ 2013-11-16
  • 打赏
  • 举报
回复
因为是auto吧.. auto是根据内容而自动撑高.. 定了高就当然没问题了..
Jave.Lin 2013-11-15
  • 打赏
  • 举报
回复
引用 6 楼 qq873113580 的回复:
用绑定试试?

auto
auto x:name="c"
auto

<scorrl height="{Bind Height=ActulHeight,elementid=c}"

或者用转换器,动态修改height值
可参考下
http://blog.csdn.net/xingjunli/article/details/5322377


我试着这么写,还是有些问题:





有时,无缘无故多出一个滚动条。。。不知道是哪设置的,我上面都强制把:ScrollBar设置为:Disabled还是这行。。。无解。。。


这ScrollViewer真的有BUG;
Jave.Lin 2013-11-15
  • 打赏
  • 举报
回复
引用 7 楼 linjf520 的回复:
[quote=引用 6 楼 qq873113580 的回复:] 用绑定试试? auto auto x:name="c" auto <scorrl height="{Bind Height=ActulHeight,elementid=c}" 或者用转换器,动态修改height值 可参考下 http://blog.csdn.net/xingjunli/article/details/5322377
第二行的行高度,只能是当前面板除了:第一行,与第二行,剩余的高度; 我可能要使用:代码去处理了。[/quote] 但不知道咋写。。。唉。。。。通过什么事件,触发,比较好呢?
Jave.Lin 2013-11-15
  • 打赏
  • 举报
回复
引用 6 楼 qq873113580 的回复:
用绑定试试? auto auto x:name="c" auto <scorrl height="{Bind Height=ActulHeight,elementid=c}" 或者用转换器,动态修改height值 可参考下 http://blog.csdn.net/xingjunli/article/details/5322377
第二行的行高度,只能是当前面板除了:第一行,与第二行,剩余的高度; 我可能要使用:代码去处理了。
Teln_小凯 2013-11-15
  • 打赏
  • 举报
回复
用绑定试试? auto auto x:name="c" auto <scorrl height="{Bind Height=ActulHeight,elementid=c}" 或者用转换器,动态修改height值 可参考下 http://blog.csdn.net/xingjunli/article/details/5322377
Jave.Lin 2013-11-15
  • 打赏
  • 举报
回复
引用 3 楼 qq873113580 的回复:
不过达到你要的效果就好了,这些小问题不用去纠结
这个不纠结不行啊; 因为会影响操作方便性;
Jave.Lin 2013-11-15
  • 打赏
  • 举报
回复
引用 1 楼 qq873113580 的回复:
一般行设置是 30 * 30 上下固定 中间填充
我之前试过: 16 * 16 都一 样这样子;
Teln_小凯 2013-11-15
  • 打赏
  • 举报
回复
不过达到你要的效果就好了,这些小问题不用去纠结
Teln_小凯 2013-11-15
  • 打赏
  • 举报
回复
造成你这样的原因还有个可能就是 布局宽高的问题
Teln_小凯 2013-11-15
  • 打赏
  • 举报
回复
一般行设置是 30 * 30 上下固定 中间填充
在Windows系统中,notepad.exe(记事本)是一个“经典的”、“简洁的”文本编辑器。这个软件,没有华丽的外观,也没有繁杂的功能,仅仅是一个文本编辑小软件。虽然经过Windows系统数十年的变换,但它却保持着永恒姿态,数十年来几乎不曾改变过。曾经,VS中的经典DEMO中,就有它的身影,一个新建的项目,就藏有一个新建的“记事本”。然而,在WPF的项目中,“记事本”却消失的无影无踪,也许是很容易实现,也许是为了革新,而不愿再传承“经典”。确实,使用WPF技术再次让“记事本”复活,确实也是一件非常容易的事情。但是,如果,使用WPF技术,再搭配当下非常流行的MVVM模式呢?复活“记事本”的难度却陡然上升至很多WPF程序员为之默默叹气。而,MVVM模式是掌握WPF的最顶级技术,MVVM模式拥有的无尽的优势,让WPF相对于过往的编程模式来说,是一种革命性的创新,从而也成为大中型WPF项目中必须的模式。但,学习难度。。。。。。在这个《WPF记事本开发详解》的课程中,赵老师带领你在WPF中,从零开始一步步构建MVVM模式,直到让你亲自以WPF+MVVM的方式,让这个经典的“记事本”软件从你的手中“复活”。在课程中,赵老师会详细讲解WPF和MVVM中的各种技巧,让你从此爱上WPF+MVVM编程。

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧