我在WPF窗口中使用ToggleButton
:
<ToggleButton Height="37"
HorizontalAlignment="Left"
Margin="485.738,254.419,0,0"
VerticalAlignment="Top"
Width="109"
IsEnabled="True"
Checked="toggleAPDTimeoutErr_Checked"
Unchecked="toggleAPDTimeoutErr_Unchecked">Timeout</ToggleButton>
我正在监控两个事件,但这是在处理程序后面的两个不同代码中完成的。怎么能只用一个呢?
我会有很多ToggleButton
,代码可能会变大。
答案 0 :(得分:21)
您可以附加ToggleButton
的单击事件,并且在其处理程序中,您可以通过在处理程序中类型转换发件人对象来检查ToggleButton
IsChecked
属性,如下所示 -
private void ToggleButton_Click(object sender, RoutedEventArgs e)
{
if((sender as ToggleButton).IsChecked)
{
// Code for Checked state
}
else
{
// Code for Un-Checked state
}
}
的Xaml:
<ToggleButton Height="37" HorizontalAlignment="Left" Margin="485.738,254.419,0,0" VerticalAlignment="Top" Width="109" IsEnabled="True" Click="ToggleButton_Click">Timeout</ToggleButton>
答案 1 :(得分:11)
您不应该像某些答案所示使用Click
事件,因为当代码或鼠标之外的任何其他事件(键盘,动画......)更改属性IsChecked
时,它将无效。这只是一个错误。
相反,您可以对Checked
和Unchecked
使用相同的处理程序,并根据IsChecked
属性执行操作。
<ToggleButton
Checked="toggleButton_IsCheckedChanged"
Unchecked="toggleButton_IsCheckedChanged" />
答案 2 :(得分:0)
试试这个
private void tBtn_super_Click(object sender, RoutedEventArgs e)
{
if (tBtn_super.IsChecked == true)
{
MessageBox.Show("True");
}
else
{
MessageBox.Show("False");
}
}