2014-01-20 87 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