
- WPF 教程
- WPF - 首頁
- WPF - 概述
- WPF - 環境設定
- WPF - Hello World
- WPF - XAML 概述
- WPF - 元素樹
- WPF - 依賴屬性
- WPF - 路由事件
- WPF - 控制元件
- WPF - 佈局
- WPF - 佈局巢狀
- WPF - 輸入
- WPF - 命令列
- WPF - 資料繫結
- WPF - 資源
- WPF - 模板
- WPF - 樣式
- WPF - 觸發器
- WPF - 除錯
- WPF - 自定義控制元件
- WPF - 異常處理
- WPF - 本地化
- WPF - 互動
- WPF - 2D 圖形
- WPF - 3D 圖形
- WPF - 多媒體
- WPF 有用資源
- WPF - 快速指南
- WPF - 有用資源
- WPF - 討論
WPF - 滑塊
滑塊是一種控制元件,使用者可以透過沿軌道移動 Thumb 控制元件來從一系列值中進行選擇。Slider 類的層次繼承如下:

滑塊常用屬性
序號 | 屬性及描述 |
---|---|
1 | Header 獲取或設定控制元件標題的內容。 |
2 | HeaderProperty 標識 Header 依賴屬性。 |
3 | HeaderTemplate 獲取或設定用於顯示控制元件標題內容的 DataTemplate。 |
4 | HeaderTemplateProperty 標識 HeaderTemplate 依賴屬性。 |
5 | IntermediateValue 獲取或設定使用者與滑塊互動時滑塊的值,在該值捕捉到刻度或步長值之前。滑塊捕捉到的值由 SnapsTo 屬性指定。 |
6 | IntermediateValueProperty 標識 IntermediateValue 依賴屬性。 |
7 | IsDirectionReversed 獲取或設定一個值,該值指示值增加的方向。 |
8 | IsDirectionReversedProperty 標識 IsDirectionReversed 依賴屬性。 |
9 | IsThumbToolTipEnabled 獲取或設定一個值,該值確定是否在滑塊的 Thumb 元件的工具提示中顯示滑塊值。 |
10 | IsThumbToolTipEnabledProperty 標識 IsThumbToolTipEnabled 依賴屬性。 |
11 | Orientation 獲取或設定滑塊的方向。 |
12 | OrientationProperty 標識 Orientation 依賴屬性。 |
13 | StepFrequency 獲取或設定應為其建立步長的值範圍的值部分。 |
14 | StepFrequencyProperty 標識 StepFrequency 依賴屬性。 |
15 | ThumbToolTipValueConverter 獲取或設定轉換器邏輯,該邏輯將滑塊的範圍值轉換為工具提示內容。 |
16 | ThumbToolTipValueConverterProperty 標識 ThumbToolTipValueConverter 依賴屬性。 |
17 | TickFrequency 獲取或設定應為其建立刻度的值範圍的增量。 |
18 | TickFrequencyProperty 標識 TickFrequency 依賴屬性。 |
19 | TickPlacement 獲取或設定一個值,該值指示相對於軌道繪製刻度標記的位置。 |
20 | TickPlacementProperty 標識 TickPlacement 依賴屬性。 |
Slider 類中常用的事件
序號 | 事件及描述 |
---|---|
1 | ManipulationCompleted 當對 UIElement 的操作完成時發生。(繼承自 UIElement) |
2 | ManipulationDelta 當輸入裝置在操作期間改變位置時發生。(繼承自 UIElement) |
3 | ManipulationInertiaStarting 當輸入裝置在操作期間與 UIElement 物件失去接觸並開始慣性時發生。(繼承自 UIElement) |
4 | ManipulationStarted 當輸入裝置開始對 UIElement 進行操作時發生。(繼承自 UIElement) |
5 | ManipulationStarting 當第一次建立操作處理器時發生。(繼承自 UIElement) |
6 | ValueChanged 當範圍值更改時發生。(繼承自 RangeBase) |
Slider 類中常用的方法
序號 | 方法及描述 |
---|---|
1 | OnManipulationCompleted 在 ManipulationCompleted 事件發生之前呼叫。(繼承自 Control) |
2 | OnManipulationDelta 在 ManipulationDelta 事件發生之前呼叫。(繼承自 Control) |
3 | OnManipulationInertiaStarting 在 ManipulationInertiaStarting 事件發生之前呼叫。(繼承自 Control) |
4 | OnManipulationStarted 在 ManipulationStarted 事件發生之前呼叫。(繼承自 Control) |
5 | OnManipulationStarting 在 ManipulationStarting 事件發生之前呼叫。(繼承自 Control) |
6 | OnMaximumChanged 當 Maximum 屬性更改時呼叫。(繼承自 RangeBase) |
7 | OnMinimumChanged 當 Minimum 屬性更改時呼叫。(繼承自 RangeBase) |
8 | OnValueChanged 觸發 ValueChanged 路由事件。(繼承自 RangeBase) |
9 | SetBinding 使用提供的繫結物件將繫結附加到 FrameworkElement。(繼承自 FrameworkElement) |
10 | SetValue 設定 DependencyObject 上依賴屬性的本地值。(繼承自 DependencyObject) |
示例
讓我們建立一個名為 **WPFDialog** 的新 WPF 專案。
從工具箱中拖動一個滑塊和兩個文字塊。
從屬性視窗更改背景顏色。
以下示例顯示了在 XAML 應用程式中使用滑塊的方法。以下 XAML 程式碼建立了一個滑塊和文字塊,並使用一些屬性和事件對其進行初始化。
<Window x:Class = "WPFSliderControl.MainWindow" 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:local = "clr-namespace:WPFSliderControl" mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604"> <StackPanel> <TextBlock Text = "Slider" Margin = "10" /> <Slider x:Name = "slider2" Minimum = "0" Maximum = "100" TickFrequency = "2" TickPlacement = "BottomRight" ValueChanged = "slider2_ValueChanged" Margin = "10"> <Slider.Background> <LinearGradientBrush EndPoint = "0.5,1" StartPoint = "0.5,0"> <GradientStop Color = "Black" Offset = "0" /> <GradientStop Color = "#FFF5DCDC" Offset = "1" /> </LinearGradientBrush> </Slider.Background> </Slider> <TextBlock x:Name = "textBlock1" Margin = "10" Text = "Current value: 0" /> </StackPanel> </Window>
以下是 **C# 中的實現**,用於 ValueChanged 事件。
using System; using System.Windows; namespace WPFSliderControl { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void slider2_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) { int val = Convert.ToInt32(e.NewValue); string msg = String.Format("Current value: {0}", val); this.textBlock1.Text = msg; } } }
編譯並執行上述程式碼後,將生成以下輸出:

建議您執行上述示例程式碼,並嘗試 Slider 類的其他屬性和事件。