Silverlight - 切換按鈕 & 重複按鈕



除了 Button 和 HyperlinkButton 之外,還有兩個類派生自 ButtonBbase

  • RepeatButton - 此控制元件持續觸發 Click 事件,只要按鈕被按下。普通按鈕每次使用者點選觸發一個 Click 事件。

  • ToggleButton - 此控制元件表示具有兩種狀態(已點選或未點選)的按鈕。當您點選 ToggleButton 時,它會保持按下狀態,直到您再次點選以釋放它。這有時被稱為粘性點選行為。

ToggleButton 類的層次繼承如下:

Hierarchical ToggleButton

ToggleButton 類中常用的 屬性 如下所示。

序號 屬性 & 描述
1

IsChecked

獲取或設定 ToggleButton 是否選中。

2

IsCheckedProperty

標識 IsChecked 依賴屬性。

3

IsThreeState

獲取或設定一個值,該值指示控制元件是否支援三種狀態。

4

IsThreeStateProperty

標識 IsThreeState 依賴屬性。

以下是 ToggleButton 類中常用的 事件

序號 事件 & 描述
1

Checked

當 ToggleButton 被選中時觸發。

2

Indeterminate

當 ToggleButton 的狀態切換到不確定狀態時觸發。

3

Unchecked

當 ToggleButton 未選中時觸發。

以下示例顯示了在 XAML 應用程式中使用 ToggleButtonRepeatButton 的方法。以下是 XAML 程式碼。

<UserControl x:Class = "RepeatButton.MainPage" 
   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" 
   mc:Ignorable = "d" 
   d:DesignHeight = "300" d:DesignWidth = "400">
   
   <Grid x:Name = "LayoutRoot" Background = "White"> 
	
      <StackPanel Margin = "10"> 
         <RepeatButton Content = "click and hold for multiple Click events" 
            Click = "RepeatButton_Click" Margin = "5" HorizontalAlignment = "Left"/> 
				
         <TextBlock x:Name = "clickTextBlock" Text = "Number of Clicks:" /> 
			
         <ToggleButton x:Name = "tb" Content = "Toggle" Checked = "HandleCheck"  
            Unchecked = "HandleUnchecked" Margin = "20" Width = "108" 
            HorizontalAlignment = "Center"/> 
					
         <TextBlock x:Name = "text2" Width = "300" HorizontalAlignment = "Center" 
            FontSize = "24" Height = "27"/> 
				
      </StackPanel> 
		
   </Grid> 
	
</UserControl>

以下是不同事件的 C# 程式碼。

using System.Windows; 
using System.Windows.Controls;
 
namespace RepeatButton { 

   public partial class MainPage : UserControl { 
	
      public MainPage() { 
         InitializeComponent(); 
      } 
		
      static int Clicks = 0;
		
      private void RepeatButton_Click(object sender, RoutedEventArgs e) { 
         Clicks += 1; 
         clickTextBlock.Text = "Number of Clicks: " + Clicks; 
      } 
	  
      private void HandleCheck(object sender, RoutedEventArgs e) { 
         text2.Text = "Button is Checked"; 
      }  
		
      private void HandleUnchecked(object sender, RoutedEventArgs e) { 
         text2.Text = "Button is unchecked."; 
      }
		
   } 
} 

當編譯並執行以上程式碼時,將顯示以下網頁。當您點選並按住頂部的按鈕時,它將連續計數點選次數。類似地,當您點選 切換 按鈕時,它將更改顏色並更新文字塊。

Checked ToggleButton
silverlight_buttons.htm
廣告