且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Windows Phone 7 水平滚动的文本

更新时间:2022-10-03 17:38:16

有木有发现应用的标题长一点就显示不全鸟,滚动一下就可以了。有两种方法一种是使用ScrollViewer控件,另外一种是使用TranslateTransform平移变换来实现。

一、ScrollViewer控件直接设置HorizontalScrollBarVisibility="Auto"就可以水平滚了

 


  1. <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28"> 
  2.             <TextBlock x:Name="ApplicationTitle" Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/> 
  3.             <ScrollViewer Width="480" 
  4.          HorizontalScrollBarVisibility="Auto"><TextBlock x:Name="PageTitle" Text="这个名字好像有点长" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/> 
  5.             </ScrollViewer> 
  6.         </StackPanel> 

二、使用TranslateTransform平移变换来实现,使用这种方法就不会产生ScrollViewer的那种滚动效果,就是你把文字拨到哪,它就定在哪。

 

 <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<StackPanel x:Name="ContentPanel2" Background="Black"
                            ManipulationDelta
="ContentPanel2_ManipulationDelta" Margin="0,0,-941,447">
                
<TextBlock Text="这个也有点长,但是没有惯性滚动的。" Foreground="White" FontSize="100" />
                
</StackPanel>
        
</Grid>


  1. public partial class MainPage : PhoneApplicationPage  
  2.     {  
  3.         //创建一个平移变换的对象  
  4.         private TranslateTransform transform = new TranslateTransform();  
  5.         public MainPage()  
  6.         {  
  7.             InitializeComponent();  
  8.             //设置StackPanel的变换属性为平移变换  
  9.             ContentPanel2.RenderTransform = transform;  
  10.  
  11.         }  
  12.  
  13.         private void ContentPanel2_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)  
  14.         {  
  15.             //X轴移动  
  16.             transform.X +=e.DeltaManipulation.Translation.X;  
  17.         }  
  18.  
  19.     } 

 

Windows Phone 7 水平滚动的文本 

 

 



本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1078559