天天看點

Windows Phone 7 水準滾動的文本

有木有發現應用的标題長一點就顯示不全鳥,滾動一下就可以了。有兩種方法一種是使用ScrollViewer控件,另外一種是使用TranslateTransform平移變換來實作。

一、ScrollViewer控件直接設定HorizontalScrollBarVisibility="Auto"就可以水準滾了

<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28"> 

            <TextBlock x:Name="ApplicationTitle" Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/> 

            <ScrollViewer Width="480" 

         HorizontalScrollBarVisibility="Auto"><TextBlock x:Name="PageTitle" Text="這個名字好像有點長" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/> 

            </ScrollViewer> 

        </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>

public partial class MainPage : PhoneApplicationPage  

    {  

        //建立一個平移變換的對象  

        private TranslateTransform transform = new TranslateTransform();  

        public MainPage()  

        {  

            InitializeComponent();  

            //設定StackPanel的變換屬性為平移變換  

            ContentPanel2.RenderTransform = transform;  

        }  

        private void ContentPanel2_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)  

            //X軸移動  

            transform.X +=e.DeltaManipulation.Translation.X;  

    } 

本文轉自linzheng 51CTO部落格,原文連結:http://blog.51cto.com/linzheng/1078559

繼續閱讀