2011-02-08 60 views
14

我使用C#和WPF和我基本上希望有一些切換按鈕,只有其中一人可以在同一時間進行選擇。如何創建一組類似於RadioButtons的ToggleButtons?

我發現another question有關,但顯示的解決方案不工作,我不知道爲什麼。

如果我試圖按照上面提到的問題來做,ListBoxItemTemplate不適用。我只是不把切換按鈕放到列表框中,而是顯示爲「正常列表框」。

我的切換按鈕樣式看起來是這樣的,包含在我的資源文件中的一個:

<Style x:Key="ToggleButtonListBox" TargetType="{x:Type ListBox}"> 
    <Setter Property="ListBox.ItemTemplate"> 
     <Setter.Value> 
      <DataTemplate> 
       <ToggleButton Content="{Binding}" 
          IsChecked="{Binding IsSelected, Mode=TwoWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}" /> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter> 
    <Setter Property="ListBox.ItemsPanel"> 
     <Setter.Value> 
      <ItemsPanelTemplate> 
       <StackPanel Orientation="Horizontal" /> 
      </ItemsPanelTemplate> 
     </Setter.Value> 
    </Setter> 
    <Setter Property="BorderThickness" Value="0" /> 
</Style> 

我想直接在XAML代碼中添加的項目,所以我的代碼看起來像

<ListBox Style="{StaticResource ToggleButtonListBox}"> 
    <ListBoxItem>test1</ListBoxItem> 
    <ListBoxItem>test2</ListBoxItem> 
</ListBox> 

如何創建這樣一組按鈕?

+0

可能重複的[如何讓一組切換按鈕的行爲像WPF中的單選按鈕?](http://stackoverflow.com/questions/2362641/how-to-get-a-group-切換按鈕的行爲就像收音機按鈕在WPF) – 2014-07-14 10:09:10

回答

37

如果你想看起來像切換按鈕,單選按鈕不會單選按鈕樣式看起來像切換按鈕解決問題了嗎?

<StackPanel> 
    <RadioButton GroupName="groupFoo" Style="{StaticResource {x:Type ToggleButton}}">Button 1</RadioButton> 
    <RadioButton GroupName="groupFoo" Style="{StaticResource {x:Type ToggleButton}}">Button 2</RadioButton> 
</StackPanel> 
+0

是的,我認爲這實際上解決了我的問題。這比我想要做的要容易得多。儘管我想了很短的一段時間,但我無法想象它可以很好地工作,那很容易。我將在上面的問題中編輯解決方案。非常感謝! – 2011-02-08 15:26:50

相關問題