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