2013-10-15 57 views
0

我需要一個按鈕樣式的菜單,即水平排列的一組總是可見的按鈕。
與單選按鈕類似,它們應該具有選定的屬性,即只有當選擇的狀態更改爲true時,點擊命令纔會觸發,而不是每次點擊都與正常按鈕相同。哪個wpf控件最適合這個菜單場景?

回答

1

RadioButton也像其他按鈕火災Click每次點擊事件。 RadioButton也沒有選定的屬性。

但是,如果你想讓你的MenuItemsButton那麼你可以在這裏使用ToggleButtonToggleButtonIsChecked跟蹤已檢查的按鈕狀態的屬性和Checked事件,當檢測到ToggleButton時觸發該事件。

另外,如果你想自動檢查/取消其他的切換按鈕的點擊您的ToggleButtons那麼你可以使用RadioButton爲您MenuItemDataTemplate並覆蓋其Template象下面這樣:

 <RadioButton Content="MyRadio" Click="RadioButton_Click"> 
      <RadioButton.Template> 
       <ControlTemplate TargetType="RadioButton"> 
        <ToggleButton Checked="ToggleButton_Checked" IsChecked="{Binding IsChecked, RelativeSource={RelativeSource TemplatedParent}}" Content="{TemplateBinding Content}"/> 
       </ControlTemplate> 
      </RadioButton.Template> 
     </RadioButton> 
2

好傢伙,這是WPF ,您可以使用任何適合您的一些或任何需求的控件,然後僅爲其提供新的ControlTemplate。順便說一句,沒有SelectedIsSelected財產RadioButton ...也許你是指IsChecked財產?該屬性繼承自ToggleButton,因此可能更合適。

由於ToggleButton已經是Button,您甚至可以在沒有爲其提供新的ControlTemplate的情況下離開。

至於你關於Click事件的要求,我不認爲你會發現任何WPF控件的這些功能,但也可以手動實現:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    if (ToggleButton.IsChecked == true) 
    { 
     // Do something here when the `Button.IsChecked` == true 
    } 
}