- Silverlight 教程
- Silverlight - 首頁
- Silverlight - 概述
- Silverlight - 環境設定
- Silverlight - 快速入門
- Silverlight - XAML 概述
- Silverlight - 專案型別
- Silverlight - 固定佈局
- Silverlight - 動態佈局
- 受約束與不受約束
- Silverlight - CSS
- Silverlight - 控制元件
- Silverlight - 按鈕
- Silverlight - 內容模型
- Silverlight - ListBox
- Silverlight - 模板
- Silverlight - 可視狀態
- Silverlight - 資料繫結
- Silverlight - 瀏覽器整合
- Silverlight - 瀏覽器外執行
- Silverlight - 應用程式和資源
- Silverlight - 檔案訪問
- Silverlight - 檢視模型
- Silverlight - 輸入處理
- Silverlight - 隔離儲存
- Silverlight - 文字
- Silverlight - 動畫
- Silverlight - 影片和音訊
- Silverlight - 列印
- Silverlight 有用資源
- Silverlight - 快速指南
- Silverlight - 有用資源
- Silverlight - 討論
Silverlight - ScrollViewer
一些使用者介面最終需要顯示比可用空間所能容納的更多資訊。一個常見的解決方案是提供一個可滾動區域。Silverlight 透過 ScrollViewer 使這變得非常容易。您可以將其包裝在任何元素周圍。它必須是一個單子元素,但它可以是一個面板,如果您需要,該面板又可以包含更多子元素。
ScrollViewer 對子元素執行不受約束的佈局,為其提供儘可能多的空間。
檢視器期望被置於受約束的佈局環境中,因為其核心思想是調整固定空間以容納大小可變的內容。
然後,它會在必要時提供捲軸。子元素完全不會感知到滾動操作。
以下是ScrollViewer類的常用屬性。
| 序號 | 屬性及說明 |
|---|---|
| 1 | ComputedHorizontalScrollBarVisibility 獲取一個值,該值指示水平捲軸是否可見。 |
| 2 | ComputedHorizontalScrollBarVisibilityProperty 標識 ComputedHorizontalScrollBarVisibility 依賴屬性。 |
| 3 | HorizontalScrollBarVisibility 獲取或設定一個值,該值指示是否應顯示水平捲軸。 |
| 4 | HorizontalScrollBarVisibilityProperty 標識 HorizontalScrollBarVisibility 依賴屬性。 |
| 5 | HorizontalScrollMode 獲取或設定一個值,該值確定操作輸入如何影響水平軸上的滾動行為。 |
| 6 | HorizontalScrollModeProperty 標識 HorizontalScrollMode 依賴屬性。 |
| 7 | HorizontalSnapPointsAlignment 獲取或設定一個值,該值指示現有捕捉點相對於初始視口的水平對齊方式。 |
| 8 | HorizontalSnapPointsAlignmentProperty 標識 HorizontalSnapPointsAlignment 依賴屬性。 |
| 9 | IsHorizontalScrollChainingEnabled 獲取或設定一個值,該值指示是否為此子元素與其父元素之間(水平軸)啟用滾動連結。 |
| 10 | IsHorizontalScrollChainingEnabledProperty 標識 IsHorizontalScrollChainingEnabled 依賴屬性。 |
| 11 | IsScrollInertiaEnabled 獲取或設定一個值,該值指示滾動操作是否應在其行為和值中包含慣性。 |
| 12 | IsScrollInertiaEnabledProperty 標識 IsScrollInertiaEnabled 依賴屬性。 |
| 13 | IsVerticalScrollChainingEnabled 獲取或設定一個值,該值指示是否為此子元素與其父元素之間(垂直軸)啟用滾動連結。 |
| 14 | IsVerticalScrollChainingEnabledProperty 標識 IsVerticalScrollChainingEnabled 依賴屬性。 |
| 15 | ScrollableHeight 獲取一個值,該值表示可滾動區域的垂直大小;範圍寬度與視口寬度之差。 |
| 16 | ScrollableHeightProperty 標識 ScrollableHeight 依賴屬性。 |
| 17 | ScrollableWidth 獲取一個值,該值表示可滾動區域的水平大小;範圍寬度與視口寬度之差。 |
| 18 | ScrollableWidthProperty 標識 ScrollableWidth 依賴屬性。 |
| 19 | VerticalScrollBarVisibility 獲取或設定一個值,該值指示是否應顯示垂直捲軸。 |
| 20 | VerticalScrollBarVisibilityProperty 標識 VerticalScrollBarVisibility 依賴屬性。 |
| 21 | VerticalScrollMode 獲取或設定一個值,該值確定操作輸入如何影響垂直軸上的滾動行為。 |
| 22 | VerticalScrollModeProperty 標識 VerticalScrollMode 依賴屬性。 |
以下是ScrollViewer類的常用事件。
| 序號 | 事件及說明 |
|---|---|
| 1 | DirectManipulationCompleted 當 ScrollViewer 的任何直接操作結束時發生。 |
| 2 | DirectManipulationStarted 當 ScrollViewer 的任何直接操作開始時發生。 |
| 3 | ViewChanged 當滾動和縮放等操作導致檢視發生更改時發生。 |
| 4 | ViewChanging 當滾動和縮放等操作導致檢視發生更改時發生。 |
以下是ScrollViewer類的常用方法。
| 序號 | 方法及說明 |
|---|---|
| 1 | GetHorizontalScrollBarVisibility 從指定的元素獲取 HorizontalScrollBarVisibility 依賴屬性/ScrollViewer.HorizontalScrollBarVisibility XAML 附加屬性的值。 |
| 2 | GetHorizontalScrollMode 從指定的元素獲取 HorizontalScrollMode 依賴屬性/ScrollViewer.HorizontalScrollMode XAML 附加屬性的值。 |
| 3 | GetIsDeferredScrollingEnabled 從指定的元素獲取 IsDeferredScrollingEnabled 依賴屬性/ScrollViewer.IsDeferredScrollingInertiaEnabled XAML 附加屬性的值。 |
| 4 | GetIsHorizontalScrollChainingEnabled 從指定的元素獲取 IsHorizontalScrollChainingEnabled 依賴屬性/ScrollViewer.IsHorizontalScrollChainingEnabled XAML 附加屬性的值。 |
| 5 | GetIsScrollInertiaEnabled 從指定的元素獲取 IsScrollInertiaEnabled 依賴屬性/ScrollViewer.IsScrollInertiaEnabled XAML 附加屬性的值。 |
| 6 | GetIsVerticalScrollChainingEnabled 從指定的元素獲取 IsVerticalScrollChainingEnabled 依賴屬性/ScrollViewer.IsVerticalScrollChainingEnabled XAML 附加屬性的值。 |
| 7 | GetVerticalScrollBarVisibility 從指定的元素獲取 VerticalScrollBarVisibility 依賴屬性/ScrollViewer.VerticalScrollBarVisibility XAML 附加屬性的值。 |
| 8 | GetVerticalScrollMode 從指定的元素獲取 VerticalScrollMode 依賴屬性/ScrollViewer.VerticalScrollMode XAML 附加屬性的值。 |
| 9 | InvalidateScrollInfo 當描述滾動區域大小和位置的屬性的值發生更改時呼叫。 |
| 10 | ScrollToHorizontalOffset 將 ScrollViewer 內的內容滾動到指定的水平偏移位置。 |
| 11 | ScrollToVerticalOffset 將 ScrollViewer 內的內容滾動到指定的垂直偏移位置。 |
| 12 | SetHorizontalScrollBarVisibility 在指定的元素上設定 HorizontalScrollBarVisibility 依賴屬性/ScrollViewer.HorizontalScrollBarVisibility XAML 附加屬性的值。 |
| 13 | SetHorizontalScrollMode 在指定的元素上設定 HorizontalScrollMode 依賴屬性/ScrollViewer.HorizontalScrollMode XAML 附加屬性的值。 |
| 14 | SetIsDeferredScrollingEnabled 在指定的元素上設定 IsDeferredScrollingEnabled 依賴屬性/ScrollViewer.IsDeferredScrollingEnabled XAML 附加屬性的值。 |
| 15 | SetIsHorizontalScrollChainingEnabled 在指定的元素上設定 IsHorizontalScrollChainingEnabled 依賴屬性/ScrollViewer.IsHorizontalScrollChainingEnabled XAML 附加屬性的值。 |
| 16 | SetIsScrollInertiaEnabled 在指定的元素上設定 IsScrollInertiaEnabled 依賴屬性/ScrollViewer.IsScrollInertiaEnabled XAML 附加屬性的值。 |
| 17 | SetIsVerticalScrollChainingEnabled 在指定的元素上設定 IsVerticalScrollChainingEnabled 依賴屬性/ScrollViewer.IsVerticalScrollChainingEnabled XAML 附加屬性的值。 |
| 18 | SetVerticalScrollBarVisibility 在指定的元素上設定 VerticalScrollBarVisibility 依賴屬性/ScrollViewer.VerticalScrollBarVisibility XAML 附加屬性的值。 |
| 19 | SetVerticalScrollMode 在指定的元素上設定 VerticalScrollMode 依賴屬性/ScrollViewer.VerticalScrollMode XAML 附加屬性的值。 |
以下是滾動檢視屬性的實現。
<UserControl
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sdk = "http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
x:Class = "ScrollViewerExample.MainPage"
mc:Ignorable = "d"
d:DesignHeight = "300" d:DesignWidth = "400">
<Grid x:Name = "LayoutRoot" Background = "White">
<ScrollViewer HorizontalScrollBarVisibility = "Auto"
VerticalScrollBarVisibility = "Auto">
<StackPanel>
<Rectangle Fill = "Gray" Width = "100" Height = "100" />
<Button x:Name = "button" Content = "Button" Width = "75"/>
<sdk:Calendar Height = "169" Width = "230"/>
<Rectangle Fill = "AliceBlue" Width = "475" Height = "100" />
</StackPanel>
</ScrollViewer>
</Grid>
</UserControl>
編譯上述程式碼後,您將看到以下輸出。
您可以看到您可以四處滾動,這適用於任何內容,例如形狀、點陣圖或更復雜的內容,例如包含其他使用者介面元素的 Grid。