- XAML 教程
- XAML - 首頁
- XAML - 概述
- XAML - 環境設定
- 在 MAC OS 上編寫 XAML 應用程式
- XAML 與 C# 程式碼
- XAML 與 VB.NET
- XAML - 構建塊
- XAML - 控制元件
- XAML - 佈局
- XAML - 事件處理
- XAML - 資料繫結
- XAML - 標記擴充套件
- XAML - 依賴屬性
- XAML - 資源
- XAML - 模板
- XAML - 樣式
- XAML - 觸發器
- XAML - 除錯
- XAML - 自定義控制元件
- XAML 有用資源
- XAML - 快速指南
- XAML - 有用資源
- XAML - 討論
XAML - 滑塊
滑塊是一種控制元件,使用者可以透過沿軌道移動拇指控制元件來從一系列值中進行選擇。滑塊類的層次繼承如下:
屬性
| 序號 | 屬性及描述 |
|---|---|
| 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;
}
}
}
編譯並執行上述程式碼後,將生成以下輸出:
建議您執行上述示例程式碼,並嘗試一些其他屬性和事件。