首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF togglebutton

WPF togglebutton
EN

Stack Overflow用户
提问于 2014-01-20 09:18:33
回答 2查看 6.2K关注 0票数 0

我有一个自定义WPF按钮的问题-每当我单击它时,它都会收到一个单击事件,但似乎不会被切换(当我单击另一个按钮时,它不会停留)。我已经尝试了我能想到的所有方法,但还是不能让它工作。

不过,我注意到一件奇怪的事情,当我在MouseDown处理程序中放置一个断点并按下F5继续操作时,按钮被切换并保持不动。这让我相信这是某种焦点问题?

代码语言:javascript
运行
复制
<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;
}

帮助?:)

EN

回答 2

Stack Overflow用户

发布于 2014-01-20 12:34:07

正如@Nick在他的评论中所说的,只要完全移除你的事件处理程序PreviewMouseDown="ToggleButton_MouseDown_1",它就会工作得很好。

如果不是这种情况,您一定有其他导致问题的代码。

票数 2
EN

Stack Overflow用户

发布于 2018-09-05 04:14:37

听起来你想要一组单选按钮的功能,但是一堆切换按钮的外观。在这样的情况下,使用继承的Control.Template属性非常方便:

在页面资源中,您可以添加:

代码语言:javascript
运行
复制
<Style TargetType="RadioButton">
    <Setter Property="Template">
        <Setter.Value>
           <ContentTemplate>
               <ToggleButton Content="{TemplateBinding Content}" IsChecked="{TemplateBinding IsChecked}"/>
           </ContentTemplate>
        </Setter.Value>
    </Setter>
</Style>

然后在你的代码中:

代码语言:javascript
运行
复制
<RadioButton Content="MyContent" GroupName="MyGroup"/>

这将使对象看起来像一个切换按钮,但当您从同一组中选择某个对象(如RadioButton )时,该对象将取消选择。您可以进一步修改模板中的ToggleButton,直到获得所需的外观。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21224824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档