2014-01-20 56 views
0

我遇到了一个自定义WPF按钮的问题 - 每当我点击它时,它都会收到一个点击事件,但似乎没有被切换(当我点击另一个按钮时不会停下来)。我尝试过所有我能想到的,但仍然无法实现的工作。WPF togglebutton

虽然我注意到了一件奇怪的事情,但是当我在MouseDown处理程序中放置一个断点并在此点击F5继续时,该按钮会切换并保持关闭状态。这使我相信这是某种焦点问题?

<ToggleButton Name="ToggleButton" PreviewMouseDown="ToggleButton_MouseDown_1" IsThreeState="False"> 
    <StackPanel Orientation="Vertical"> 
     <Label Content="Single" FontSize="15" FontWeight="Medium"/> 
     <Label Content="Speaker"/> 
    </StackPanel> 
</ToggleButton> 

private void ToggleButton_MouseDown_1(object sender, MouseButtonEventArgs e) 
{ 
    ToggleButton.IsChecked = !ToggleButton.IsChecked; 
} 

    private void ToggleButton_MouseDown_1(object sender, MouseButtonEventArgs e) 
{ 
    ToggleButton.IsChecked = !ToggleButton.IsChecked; 
} 

帮助? :)

+1

ToggleButton控件是否处理IsChecked属性已更改?我之前没有用过它,我只是猜测你的事件正在扭转行为。 –

+0

这确实解决了这个问题。然而,这并不适用于我的情况 - 请参阅 - 我在自己的控件中使用这些按钮(每次2或3个按钮),如果您选中1按钮,则会将其余按钮切换到未选中状态。有没有办法让事件处理程序,仍然得到它的工作?问题背后的实际原因是什么? (我是新来的WPF).. 谢谢! :) – Ross

回答

2

正如@尼克在他的评论中所说的,只是完全删除你的事件处理程序PreviewMouseDown="ToggleButton_MouseDown_1",它应该工作得很好。

如果不是这种情况,您必须有一些其他代码导致该问题。

+0

这确实解决了这个问题。然而,这并不适用于我的情况 - 请参阅 - 我在自己的控件中使用这些按钮(每次2或3个按钮),如果您选中1按钮,则会将其余按钮切换到未选中状态。有没有办法让事件处理程序,仍然得到它的工作?问题背后的实际原因是什么? (我是新来的WPF).. 谢谢! :) – Ross