C# Windows 8,Windows Phone 8 WP8,使用程式碼動態產生ScrollViewer,並放入可捲動的資料。

  • 2043
  • 0
  • C#
  • 2015-06-10

在Windows Store App 或 Windows Phone App 時,很容易因為資料太多無法呈現小的螢幕上,所以ScrollViewer就是我們可能會考慮選擇的控制項,來幫完成捲動的功能,一般我們會在Xaml中排版,但若您的資料數量不固定或是一次需要不固定數量的ScrollViewer怎麼辦呢?!此時就可以透過C#程式碼動態產生ScrollViewer。

本篇文章將引導您使用程式碼動態產生ScrollViewer。

在Windows Store App 或 Windows Phone App 時,很容易因為資料太多無法呈現小的螢幕上,所以ScrollViewer就是我們可能會考慮選擇的控制項,來幫完成捲動的功能,一般我們會在Xaml中排版,但若您的資料數量不固定或是一次需要不固定數量的ScrollViewer怎麼辦呢?!此時就可以透過C#程式碼動態產生ScrollViewer。

 

本篇文章將引導您使用程式碼動態產生ScrollViewer。

 

一般我們會在Xaml中這樣編輯,並在ScrollViwer底下加入可以捲動的內容:

SrollViewer : scroll_viewer

StackPanel : SrollViewer _Content

 

   1:  <ScrollViewer 
   2:      x:Name="scroll_viewer"
   3:      ZoomMode="Disabled" 
   4:      VerticalScrollBarVisibility="Auto"
   5:      HorizontalScrollBarVisibility="Disabled"
   6:      VerticalAlignment="Center"
   7:      HorizontalAlignment="Center"
   8:      Height="500">
   9:          <StackPanel x:Name="ScrollViewer_Content" Height="2000" />
  10:  </ScrollViewer>

 

但是在C#中開如何編輯呢?!

 

   1:  ScrollViewer scroll_viewer = new ScrollViewer() 
   2:  { 
   3:      ZoomMode=ZoomMode.Disabled,//禁用縮放
   4:      VerticalAlignment=VerticalAlignment.Center,//垂直置中對齊
   5:      HorizontalAlignment=HorizontalAlignment.Center,//水平置中對齊
   6:      VerticalScrollBarVisibility = ScrollBarVisibility.Auto,//垂直卷軸自動開啟
   7:      HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled,//禁用水平卷軸
   8:      Height = 500//指定scroll_viewer高度
   9:  };
  10:   
  11:  StackPanel ScrollViewer_Content = new StackPanel()
  12:  {
  13:      Height = 2000//指定ScrollViewer_Content高度
  14:  };
  15:   
  16:  scroll_viewer.Content = ScrollViewer_Content;

 

要注意ScrollViwer底下只能有一個子控制項,並非像StackPanel、Grid一樣可以容納多個控制項,最好的辦法就是把所有想要捲動的內容放在同一個控制項中,再放入ScrollViwer底下,如本篇範例所示。

 

如此一來就學會了使用程式碼動態產生ScrollViewer。

 

References : ScrollViewer class

 

 

文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝
轉載請註明出處,並且附上本篇文章網址 !  感謝。

SUKI

HOLIESTAR