WPF - Slider 滑块控件

Slider 滑块是一种控件,借助它,用户可以通过沿轨道移动 Thumb 控件来从一系列值中进行选择。 Slider类的层次继承如下−

滑块的层次结构

Slider 滑块常用属性

Sr. No. 属性和描述
1

Header

获取或设置控件标头的内容。

2

HeaderProperty

标识标头依赖属性。

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

标识方向依赖属性。

13

StepFrequency

获取或设置应为其创建步骤的值范围的值部分。

14

StepFrequencyProperty

标识 StepFrequency 依赖属性。

15

ThumbToolTipValueConverter

获取或设置将 Slider 的范围值转换为工具提示内容的转换器逻辑。

16

ThumbToolTipValueConverterProperty

标识 ThumbToolTipValueConverter 依赖属性。

17

TickFrequency

获取或设置应为其创建刻度的值范围的增量。

18

TickFrequencyProperty

标识 TickFrequency 依赖属性。

19

TickPlacement

获取或设置一个值,该值指示在何处绘制与轨道相关的刻度线。

20

TickPlacementProperty

标识 TickPlacement 依赖属性。

Slider类常用事件

Sr. No. 事件和描述
1

ManipulationCompleted

在 UIElement 上的操作完成时发生。 (继承自UIElement)

2

ManipulationDelta

当输入设备在操作期间改变位置时发生。 (继承自UIElement)

3

ManipulationInertiaStarting

当输入设备在操作期间失去与 UIElement 对象的接触并且惯性开始时发生。 (继承自UIElement)

4

ManipulationStarted

当输入设备开始对 UIElement 进行操作时发生。 (继承自UIElement)

5

ManipulationStarting

首次创建操作处理器时发生。 (继承自UIElement)

6

ValueChanged

当范围值更改时发生。 (继承自RangeBase)

Slider类常用方法

Sr. No. 方法及描述
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 项目。

  • 从工具箱中拖动一个滑块和两个文本块。

  • 从属性窗口更改背景颜色。

  • 以下示例显示了 Slider 在 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> 

这是 ValueChanged 事件的 C# 实现

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 类的其他属性和事件。

❮ wpf_controls.html