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
广告