我有一个自定义WPF按钮的问题-每当我单击它时,它都会收到一个单击事件,但似乎不会被切换(当我单击另一个按钮时,它不会停留)。我已经尝试了我能想到的所有方法,但还是不能让它工作。
不过,我注意到一件奇怪的事情,当我在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;
}帮助?:)
发布于 2014-01-20 12:34:07
正如@Nick在他的评论中所说的,只要完全移除你的事件处理程序PreviewMouseDown="ToggleButton_MouseDown_1",它就会工作得很好。
如果不是这种情况,您一定有其他导致问题的代码。
发布于 2018-09-05 04:14:37
听起来你想要一组单选按钮的功能,但是一堆切换按钮的外观。在这样的情况下,使用继承的Control.Template属性非常方便:
在页面资源中,您可以添加:
<Style TargetType="RadioButton">
<Setter Property="Template">
<Setter.Value>
<ContentTemplate>
<ToggleButton Content="{TemplateBinding Content}" IsChecked="{TemplateBinding IsChecked}"/>
</ContentTemplate>
</Setter.Value>
</Setter>
</Style>然后在你的代码中:
<RadioButton Content="MyContent" GroupName="MyGroup"/>这将使对象看起来像一个切换按钮,但当您从同一组中选择某个对象(如RadioButton )时,该对象将取消选择。您可以进一步修改模板中的ToggleButton,直到获得所需的外观。
https://stackoverflow.com/questions/21224824
复制相似问题