XAML - 滑块



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

Slider Hierarchy

属性

序号 属性及描述
1

标题

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

2

HeaderProperty

标识 Header 依赖属性。

3

HeaderTemplate

获取或设置用于显示控件标题内容的 DataTemplate。

4

HeaderTemplateProperty

标识 HeaderTemplate 依赖属性。

5

中间值

获取或设置用户与滑块交互时滑块的值,在该值捕捉到刻度或步长值之前。滑块捕捉到的值由 SnapsTo 属性指定。

6

IntermediateValueProperty

标识 IntermediateValue 依赖属性。

7

IsDirectionReversed

获取或设置一个值,该值指示值的增加方向。

8

IsDirectionReversedProperty

标识 IsDirectionReversed 依赖属性。

9

IsThumbToolTipEnabled

获取或设置一个值,该值确定是否在滑块的 Thumb 组件的工具提示中显示滑块值。

10

IsThumbToolTipEnabledProperty

标识 IsThumbToolTipEnabled 依赖属性。

11

方向

获取或设置滑块的方向。

12

OrientationProperty

标识 Orientation 依赖属性。

13

StepFrequency

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

14

StepFrequencyProperty

标识 StepFrequency 依赖属性。

15

ThumbToolTipValueConverter

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

16

ThumbToolTipValueConverterProperty

标识 ThumbToolTipValueConverter 依赖属性。

17

TickFrequency

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

18

TickFrequencyProperty

标识 TickFrequency 依赖属性。

19

TickPlacement

获取或设置一个值,该值指示相对于轨道在何处绘制刻度标记。

20

TickPlacementProperty

标识 TickPlacement 依赖属性。

事件

序号 事件及描述
1

ManipulationCompleted

当对 UIElement 的操作完成时发生。(从 UIElement 继承)

2

ManipulationDelta

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

3

ManipulationInertiaStarting

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

4

ManipulationStarted

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

5

ManipulationStarting

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

6

ValueChanged

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

方法

序号 方法及描述
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 继承)

示例

以下示例显示了在 XAML 应用程序中使用滑块的方法。以下是创建滑块和文本块以及一些属性和事件的 XAML 代码。

<Window x:Class = "XAMLSlider.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   Title = "MainWindow" Height = "350" Width = "525">
	
   <Grid>
      <StackPanel> 
         <TextBlock Text = "Slider with ValueChanged event handler:" Margin = "10"/> 
         <Slider x:Name = "slider2" Minimum = "0" Maximum = "100"
            TickFrequency = "2" TickPlacement = "BottomRight"
            ValueChanged = "slider2_ValueChanged" Margin = "10"/>
         <TextBlock x:Name = "textBlock1" Margin = "10" Text = "Current value: 0" />
      </StackPanel>
   </Grid> 
	
</Window>

以下是 ValueChanged 事件的 C# 实现:

using System; 
using System.Windows; 
using System.Windows.Controls;

namespace XAMLSlider {
   /// <summary> 
      /// Interaction logic for MainWindow.xaml 
   /// </summary> 
	
   public partial class MainWindow : Window {
      public MainWindow() { 
         InitializeComponent(); 
      } 
      //private void slider2_ValueChanged(object sender,RangeBaseValueChangedEventArgs e)
      //{ 
         // string msg = String.Format("Current value: {0}", e.NewValue); 
         // this.textBlock1.Text = msg; 
      //}
      
      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 Output

建议您执行上述示例代码,并尝试一些其他属性和事件。

xaml_controls.htm
广告