选择单选按钮,wpf
我需要把我的窗口3个单选按钮,并让用户只选择一个按钮。 我做了一个ListBox并设置了选择模式= Single,但我仍然可以选择所有这些,我需要将每个项目都包含在内容中......我不知道该怎么做。谁能帮忙?也许有另一种方式来呈现单选按钮并只选择一个......?选择单选按钮,wpf
这里是XAML -
<ListBox SelectionMode="Single" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" Background="Transparent" BorderThickness="0" Margin="0,0,0,57" HorizontalAlignment="Right" Width="304" Height="146" VerticalAlignment="Bottom">
<ListBoxItem>
<RadioButton Content="Option 1" Margin="0,0,0,10" Height="16" HorizontalAlignment="Left" Name="radioButton1" VerticalAlignment="Top" FontSize="12" />
</ListBoxItem>
<ListBoxItem>
<RadioButton Content="Option 2" Margin="0,0,0,10" Height="16" HorizontalAlignment="Left" Name="radioButton2" VerticalAlignment="Top" FontSize="12" />
</ListBoxItem>
<ListBoxItem>
<StackPanel Orientation="Horizontal" Height="90">
<RadioButton Content="Another : " Checked="radioButton4_Checked" Height="16" HorizontalAlignment="Left" Name="radioButton4" VerticalAlignment="Top" FontSize="12" />
<TextBox Width="225" Name="TextBox_AnotherReason" AcceptsReturn="True" TextWrapping="Wrap" VerticalScrollBarVisibility="Visible"/>
</StackPanel>
</ListBoxItem>
</ListBox>
尝试在单选按钮元素(参见http://arcanecode.com/2007/09/20/the-wpf-radiobutton/)GroupName属性!
<StackPanel>
<RadioButton GroupName=“One“ IsChecked=“True“>Option 1</RadioButton>
<RadioButton GroupName=“One“ IsChecked=“False“>Option 2</RadioButton>
<RadioButton GroupName=“Two“ IsChecked=“False“>Option 3</RadioButton>
<RadioButton GroupName=“Two“ IsChecked=“True“>Option 4</RadioButton>
</StackPanel>
所以你的情况:
<ListBox SelectionMode="Single" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" Background="Transparent" BorderThickness="0" Margin="0,0,0,57" HorizontalAlignment="Right" Width="304" Height="146" VerticalAlignment="Bottom">
<ListBoxItem>
<RadioButton GroupName=“Group1“ Content="Option 1" Margin="0,0,0,10" Height="16" HorizontalAlignment="Left" Name="radioButton1" VerticalAlignment="Top" FontSize="12" />
</ListBoxItem>
<ListBoxItem>
<RadioButton GroupName=“Group1“ Content="Option 2" Margin="0,0,0,10" Height="16" HorizontalAlignment="Left" Name="radioButton2" VerticalAlignment="Top" FontSize="12" />
</ListBoxItem>
<ListBoxItem>
<StackPanel Orientation="Horizontal" Height="90">
<RadioButton GroupName=“Group1“ Content="Another : " Checked="radioButton4_Checked" Height="16" HorizontalAlignment="Left" Name="radioButton4" VerticalAlignment="Top" FontSize="12" />
<TextBox Width="225" Name="TextBox_AnotherReason" AcceptsReturn="True" TextWrapping="Wrap" VerticalScrollBarVisibility="Visible"/>
</StackPanel>
</ListBoxItem>
</ListBox>
已经评论过了,你是否需要它成为一个列表框? – 2011-06-16 15:03:39
不,我不需要它是一个ListBox,我有点困惑......在所有的评论后,我看到我的错误......谢谢。 – 2011-06-19 05:16:12
给他们(单选按钮)全部组名是一样的。
您需要赋予每个RadioButton一个GroupName
属性,并让它们在您希望相互排斥的按钮之间相同。
虽然以下各种与GroupName相关的答案是正确的,但它们并没有解决更重要的问题:为什么在这里使用ListBox?通过将单选按钮放入列表框中,您已经引入了两种机制*这两种机制*都提供了从列表中选择单个项目的方法。它们有效地竞争,所以你的例子不能真正正常工作也就不足为奇了。要么使用ListBox,要么使用一组RadioButton。不要同时使用两者。 – 2011-06-16 12:14:06
好评,如果你使用它作为布局复选框的方式,你最好使用stackpanel。 – 2011-06-16 14:57:15