ScrollViewer类表示可包含其他可见元素的可滚动区域, 一般会用在屏幕的宽度和高度不够用时,作为一种延伸使用,参考书上称之为滚动条,在默认的情况下垂直滚动条是可见的,水平滚动条不显示,即 VerticalScrollBarVisibility和HorizontalScrollBarVisibility两个属性,这两个属性的值是 ScrollBarVisibility枚举成员【作者:神舟龙】

Visible 显示滚动条;Hidden不显示滚动条;Auto 需要时显示;Disabled 可见但是不响应触摸事件,这两个属性也正是下面会用到的,下面示例中把程序标题给更改了,为了显示更好的效果

xaml代码:

  1. <!--TitlePanel 包含应用程序的名称和页标题-->
  2. <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
  3. <StackPanel.Resources>
  4. <Style x:Key="stStyle" TargetType="TextBlock">
  5. <Setter Property="TextTrimming" Value="WordEllipsis"></Setter>
  6. <Setter Property="FontSize" Value="23"></Setter>
  7. <Setter Property="Foreground" Value="BlueViolet"></Setter>
  8. <Setter Property="HorizontalAlignment" Value="Center"></Setter>
  9. </Style>
  10. </StackPanel.Resources>
  11. <TextBlock x:Name="ApplicationTitle" Text="笑一笑" Style="{StaticResource stStyle}"/>
  12. </StackPanel>

可以看到的是我们自定义了样式,这里定义的原则是先定义再使用,即上面代码中的textblock 不能再样式之上,如果这样系统就会报错;

内容区域的xaml代码:

  1. <!--ContentPanel - 在此处放置其他内容-->
  2. <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
  3. <Grid.Resources>
  4. <Style x:Key="paragraphStyle" TargetType="TextBlock">
  5. <Setter Property="TextWrapping" Value="Wrap"></Setter>
  6. <Setter Property="Margin" Value="5"></Setter>
  7. <Setter Property="FontSize" Value="19"></Setter>
  8. </Style>
  9. </Grid.Resources>
  10. <ScrollViewer Padding="5" >
  11. <StackPanel>
  12. <TextBlock Style="{ StaticResource paragraphStyle}">
  13.  一天中午下班,由于天气挺好.大家就在食堂打了饭一起在外面吃饭.
  14. 我就问了,用什么方法修理别人最惨,大家都在一起笑谈自己的看法.<LineBreak/>
  15.                      一会就见我侄女打着饭来了,她开口就问:你们在聊什么啊?我就说:如果你恨一个人,
  16. 你认为用什么方法可以修理的他最惨.她张口就说:找人海扁他一顿,我就说了:
  17. 皮肉之伤过几天就好了,这有什么.她又说了:找几个人狠狠的羞辱他一番,呵呵!心灵上的创伤,
  18. 随着时间流逝,也会慢慢的好起来的.我说不算什么?当时她一听,把手里的碗往花台上一放,双手往腰间一插,右手往上一指,
  19. 嘿嘿!嫁给他!我当时无语了,她说:我用一生来折磨他还不够吗?<LineBreak/>
  20.                     从那以后她多了一个外号叫(二莽)
  21. </TextBlock>
  22. <Line  StrokeThickness="9" Stroke="Blue"  X1="0" Y1="20" X2="480" Y2="20"></Line>
  23. <TextBlock Style="{StaticResource paragraphStyle}">
  24. <Run> 一对年轻人谈恋爱,男的想试探女的是否能做到守身如玉,便问女友道:“如果你深夜一人在街上走,突然来了一个男人要和你亲嘴,你怎么办?”
  25. 女友答道:“我会反抗,并打他一个耳光。”
  26. 男的又问:“如果又来一个喝醉酒了的男人一下子要抱住你,你怎么办?”
  27. 女友答道:“我会全力反抗,不让他得逞。”
  28. 男的听了,高兴地连连点头,继续问道:“假如又走来一个很帅的男人,向你提出那种要求,你怎么办?”
  29. 女友听了,回答说:“你要知道,
  30. </Run>
  31. <Run FontStyle="Italic">一个女人的反抗毕竟是有限的!” </Run>
  32. </TextBlock>
  33. <Line Stroke="Blue" StrokeThickness="9"  X1="0" Y1="20" X2="480" Y2="20"></Line>
  34. <TextBlock x:Name="tb3" Style="{StaticResource paragraphStyle }">
  35. 收到一条短信:“今日15点31分开始起,我老婆就要开始陪别人的老公睡啦,我还得幸福的伺候着洗漱更衣沐浴,没办法他带枪来的。”看了百思不得其解,咋会有这么贱的人。后来一看发信人,我了个去,生孩子居然有这样报喜的!
  36. </TextBlock>
  37. </StackPanel>
  38. </ScrollViewer>
  39. </Grid>

可以看到这里也有用到自定义样式,内外边距分别是5,书上说这样有利于阅读,不过看到效果后,确实感觉不错;代码中用到的stackPanel默认 为垂直分布,你可以设置Orientation="Horizontal"为水平方向对子元素进行排列;在每个段落之前都有Unicode字符“ ” 表示所在行缩进一个字符的宽度

Line类

上面代码中还使用Line,在两个点之间绘制一条直线 ,需要满足的基本属性是X1,X2,Y1,Y2其中X1,Y1作为起点,X2,Y2作为终点,并以此进行连接成一条直线;可以使用Stroke设置颜色,并使用StrokeThickness设置显示的粗细,这里为了效果,设置的比较粗;

看效果图吧:

ScrollViewer默认垂直是显示的,所以效果如上,那么我们设置水平滚动条显示效果会如何那;直接在scrollviewer标签中加HorizontalScrollBarVisibility="Visible"即可,代码不在贴出,直接来效果吧

这里需要注意的是我们在样式中已经设置了自动换行,但是因为我们设置水平滚动条显示,所以字行换行的行的概念也就没有了;但是我想知道如果文字不换行的情况下,水平方向上显示的文字是多长,事实或许并不是我们想象中的那么好

当滚动条走到大概一半不到时,上面的文字已经不显示了,所以如果文字太长,即使设置了显示水平滚动条,也不会完全显示,这是一种极端的情况,一般也不会用到

那么水平滚动区域宽度时多少那,加了个触摸完成事件

  1. private void sv1_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
  2. {
  3. this.ApplicationTitle.Text = "水平滚动区域宽度:" + sv1.ScrollableWidth.ToString();
  4. }

版本7.0和7.1的差别:

行为

Windows Phone OS 7.0 app/Windows Phone OS 7.0设备

 

Windows Phone OS 7.0 or Windows Phone OS 7.1 app/Windows Phone OS 7.1 设备

ScrollViewer 在滚动期间在 UI 线程上更新属性

属性在值更改时即更新。

属性在用户举起手指时更新,或当用户在任何方向拖动、摇动,或轻击屏幕 1/4 时更新。

ManipulationDelta 内拖动时 UI 线程上引发的事件ScrollViewer

通过 ScrollViewer 中的元素处理事件。

由于事件处于输入线程上,这些事件不会引发。

 

第一个还好理解,第二个我的理解是因为有滚动,所以触摸移动是事件ManipulationDelta不会被引发,这样就证明了刚刚我是用该事件获取水平滚动宽度得到值为0,

如果应用程序依赖于 Windows Phone OS 7.0 行为,您可以取消性能改进通过在与ListBox关联的 ScrollViewer上,将ManipulationMode 属性设置为 Control。 下面的代码示例演示具体做法。

<ListBox ItemsSource="{Binding Items}" ScrollViewer.ManipulationMode ="Control" Height="652" Canvas.Top="80">
本文转自shenzhoulong  51CTO博客,原文链接:http://blog.51cto.com/shenzhoulong/846370,如需转载请自行联系原作者

windows phone (23) ScrollViewer元素相关推荐

  1. 与众不同 windows phone (23) - Device(设备)之硬件状态, 系统状态, 网络状态

    原文:与众不同 windows phone (23) - Device(设备)之硬件状态, 系统状态, 网络状态 [索引页] [源码下载] 与众不同 windows phone (23) - Devi ...

  2. JavaScript(23) 创建元素标签和属性在body中(jQuery插件)

    效果图: 代码:(注意引入jQuery插件!!) <!DOCTYPE html> <html><head lang="en"><meta ...

  3. selenium之如何等待页面元素加载完成

    webdriver中我们用两种方式进行等待:明确的等待和隐性的等待. 明确的等待 明确的等待是指在代码进行下一步操作之前等待某一个条件的发生.最不好的情况是使用Thread.sleep()去设置一段确 ...

  4. 出现authentication mode=Windows/错误解决办法

    网上下载的asp.net源码出现 <authentication mode="Windows"/>错误信息 authentication 元素(ASP.NET 设置架构 ...

  5. Windows phone 应用开发[3]-UI 设计

    本篇来谈谈Windows phone UI设计.这个有点让我痛苦的话题. 其实谈到移动平台的设计.原来没有实际接触Windows phone 产品开发工作时对UI设计这个概念不是特别强烈. 并没有感到 ...

  6. web.xml文件中的web-app元素

    [转载]web.xml文件中的web-app元素 (2012-05-24 13:35:57) 转载▼ 标签: 转载 分类: java 挺全 的 呵呵呵 转了 原文地址:web.xml文件中的web-a ...

  7. windows socket 简单实例

    Windows下Socket编程主要包括以下几部分: 服务端    1.初始化Windows Socket库.    2.创建Socket.    3.绑定Socket.    4.监听.    5. ...

  8. 如何在Linux上运行Windows软件?

    因此,您已经准备好过渡到Linux ,但是您仍然有一些程序还不十分乐于使用. 您仍然可以在Linux上运行Windows软件吗? 答案可能是肯定的,但是有一些警告. 在继续之前,我想作一个重要的区分. ...

  9. windows 打开exe传参_“以管理员身份运行”,这个打开软件时经常遇到的问题,有何含义...

    平时操作电脑,我们会遇到操作系统要求"以管理员身份运行"软件程序,收到这样的的消息时,我们一直很想知道Windows内部发生的事情,以及为什么要进行这个操作过程. 那些从windo ...

最新文章

  1. Effective Java - Item 1: Consider static factory methods instead of constructors
  2. Python计算数据相关系数(person、Kendall、spearman)
  3. Linux下的各种文件阅读器
  4. 【Netty】NIO 缓冲区 ( Buffer ) 分散 Scattering 与 聚合 Gathering 操作
  5. zk reconnect
  6. Android通过WebView在线打开PDF文件(文中提供源码下载)
  7. java tcp 仿真工具_MODBUS-TCP Client Tester(免费从站仿真工具)V1.01 最新版
  8. 苹果和虫子(信息学奥赛一本通-T1038)
  9. axios的get请求 - 代码篇
  10. 查看java运行时参数_查看JVM运行时参数
  11. 用手机约会为何胜过电脑?
  12. 图神经网络(二)--GNNs
  13. 深入学习c++--智能指针(二) weak_ptr(打破shared_ptr循环引用)
  14. HTML5七夕情人节表白网页(全屏七夕表白页面滚动模板) HTML+CSS+JavaScript
  15. php函数体用return,php递归函数使用return问题
  16. android 颜色资源
  17. 图像特征原理--HOG特征
  18. c语言汇率兑换小程序,不懂算汇率?推荐你3个计算汇率的小程序,让你轻松算汇率...
  19. 深度点击率预估模型的One-Epoch过拟合现象剖析
  20. 硬盘突然变raw格式_移动硬盘分区变为RAW格式的终极解决办法

热门文章

  1. Bing空间数据服务
  2. 在共享DLL中使用MFC 和在静态库中使用MFC的区别
  3. C#二进制文件编程实践
  4. 过渡期间的测试:外包软件的测试标准(译)
  5. SQL错误提示档案(3):SQL Server连接中的四个最常见错误
  6. Atitit.提升api兼容性的方法 v3 q326
  7. Mac OS Mountain Lion 下的Wireshark
  8. 成功人士,默默做的30件事 (4-6)
  9. POJ 3322 Bloxorz I(BFS)
  10. JDK内置工具--jconsole