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