WPF textBox中简单处理文字滚动显示问题,另外用代码去边框

来源:转载


           本人在项目中遇到了一个问题,就是在textBox中显示一段文字,达到分页滚动的效果。比如说一长段文字,超出了文本框的显示。于是就想着把这一段文字均分成几段,用线程刷新界面,每隔固定的秒数,循环显示。技术有限,不喜勿碰,只做自己总结。

        首先,在拖入一个textBox控件,Name = "LS"

        然后,进行一些定义:

       

 int _nCurPage = 0;//定义当前页 string get; //用来获取分段的文字 //文字源,自己找的 string str = "人生,怕的就是心累,痛的就是流泪。属于自己的风景,从来不曾错过,不是自己的风景,永远只是路过。天地太大,人太渺小,不是每一道亮丽的风景都能拥有。一辈子,只求有一道令自己流连忘返,不离不弃的风景就已足够。每一颗心,都有一份无法替代的情愫和某一道风景永远关联着,人生的风景,是物也是人。生在尘世,每个人,都不可避免的要经历一场寒风和苦雨。我们每走一段路,都会遇到一道坎,或高,或低。每经一件事,都会成长一次,或多,或少。每动一次情,都会受伤一回,或深,或浅。每听一首歌,都会动容一心,或忧,或喜。礁石阻拦不住江水东流,悲伤遮掩不住时光飞逝。我们的一生,究竟有多少沟坎要独自跨越,又有多少遗憾留给岁月。一路奔波追求,忙忙碌碌,相聚分离,过客匆匆;偶遇邂逅,进进出出,苦辣酸甜,喜喜忧忧。绚烂的花朵,成熟的身心,来自多年的磨砺,人放松,心放平,让生活轻松,让生命丰厚。人活着就是一种修行,看开处处充满生机,看透天天都是春季。人生没有假设,没有如果,过去的是永远,当下才是全部。用一颗平常心,平凡的活着,梦自己所梦,想自己所想,爱自己所爱。珍惜身边的幸福,欣赏自己的拥有,背不动的就放下,伤不起的就看淡,想不通的就丢开,恨不过的就抚平。人生本来就不易,生命本来就不长,何必用无谓的烦恼,作践自己,伤害岁月。从容达观一些,轻松自在一些,豁达随意一些.岁月中,人们奔波进取,于坎坷间洒满汗水,脸上身上全是疲惫。尘世间,人们期盼美好,憧憬美好,鲜有如愿以偿。累了悄悄藏在心底,痛了默默流泪,多少难言的苦楚,于泪中轻轻释放。生活,就是这样,想好的,不知不觉慢慢就变了,说好的,走着做着渐渐就改变了。尘埃落定,时过境迁,你才理解错失,感到痛惜。烟消云散,物是人非,你才明白过失,感到惋惜。原来,事到临头,所有的感叹都变成伤痕,情到尽头,所有的情绪都变成疼痛。生命穿过四季,便体会了风霜雪雨,缘分经过聚散,便沉淀了真情实意,感情走过岁月,便领悟了人情冷暖。真爱你的人,会不离不弃,路过你的人,只是一时痴迷。许多的话,不要用耳朵听,而是用心听,许多的人,不要用眼睛看,而是用心看。热烈的未必长久,淡然的未必无心,陪你到最后的,才是真爱你的人。人生在世,谁都不易,生活在外,谁都有泪。即使身受挫折,蒙受不白,也不要轻易放弃。"; //网上随便找的文章,关键字是够长</span>

        其次,在窗体的Load事件中添加处理线程 

private void Window_Loaded(object sender, RoutedEventArgs e) { Thread newThread = new Thread(new ThreadStart(GetData)); newThread.Start(); }

        最后,定义一下处理程序,重要的地方

        

<span style="white-space:pre"> </span>private void GetData() { while (true) { int YeShu = 10; //用户自己定义显示页数 int Totals = str.Length;//获得字符总长度 int YeShuTotals = Totals / YeShu;//每页显示的字符长度 char[] arrChar = str.ToCharArray();//把字符串进行转换,便于处理 get = null; //先设置为空 for (int j = 0; j < YeShuTotals; j++) //获取一页的文字 { get += arrChar[_nCurPage*YeShuTotals + j].ToString(); } this.Dispatcher.Invoke(new Action(delegate { textBox1.TextWrapping = TextWrapping.Wrap;//自动换行 textBox1.Text = get; //赋值 })); _nCurPage = (_nCurPage + 1) % YeShu; //获得当前页 Thread.Sleep(3000); //延时3秒,可以自己看情况设定 } }

这里只截取了三张,当滚动完毕自后,回到第一页。有兴趣可以自己也编写一下,看看效果。

同时也适用于在listBox中进行分页循环显示。本人自己也试验过。

在做WPF过程中,listView,textBox,和listBox中会出现边框,在XAML中很好隐藏,

我试了一下在代码中实现,可以直接使用,效果不错:

 ScrollViewer.SetHorizontalScrollBarVisibility(listBox1, ScrollBarVisibility.Hidden); ScrollViewer.SetVerticalScrollBarVisibility(listBox1, ScrollBarVisibility.Hidden);

( 一点小总结,见笑。)




分享给朋友:
您可能感兴趣的文章:
随机阅读: