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
广告

© . All rights reserved.