WPF - 滑塊



滑塊是一種控制元件,使用者可以透過沿軌道移動 Thumb 控制元件來從一系列值中進行選擇。Slider 類的層次繼承如下:

Hierarchical of 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; 
      }
		
   } 
}

編譯並執行上述程式碼後,將生成以下輸出:

Output of Slider

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

wpf_controls.htm
廣告