首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未触发Silverlight event MouseLeftButtonDown

未触发Silverlight event MouseLeftButtonDown
EN

Stack Overflow用户
提问于 2009-12-10 03:12:13
回答 4查看 6.8K关注 0票数 3

我遇到了一个问题,在Silverlight事件中,按钮和hyperlinkButton的MouseLeftButtonDown不会被触发。看起来它是在框架中的某个地方处理的。如何重写此行为

在下面的XAML代码中,当我单击名为Cancel的按钮时,不会触发Button_MouseLeftButtonDown。我试着把文本块放在按钮里,当我点击按钮上的文本时,MouseLeftButtonDown就起作用了,但它不会冒泡到框架上

代码语言:javascript
复制
    <Button Name="Cancel" ClickMode="Release" MouseLeftButtonDown="Button_MouseLeftButtonDown">
            <Button.Content>
                <TextBlock Name="CancelInnerText" MouseLeftButtonDown="TextBlock_MouseLeftButtonDown">Clone Page</TextBlock>
            </Button.Content>

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-12-10 03:48:46

让它工作,必须设置按钮的ClickMode=“悬停”。现在,MouseLeftButtonDown事件正在触发,并且还在冒泡

票数 7
EN

Stack Overflow用户

发布于 2009-12-10 03:21:21

是啊,我不知道你来这里是为了什么。这是某种奇怪的情况,还是你只是想要一个按钮,当你点击它时,它会触发一个事件?

如果这只是一个普通的按钮,你通常会使用默认行为:

代码语言:javascript
复制
    <Button Name="Cancel" Click="Button_Click">
        <Button.Content>
            <TextBlock>Clone Page</TextBlock>
        </Button.Content>
    </Button>
票数 0
EN

Stack Overflow用户

发布于 2011-04-14 11:36:04

你不是认真的吧!如果用户触摸大型表单上的cancel按钮,会发生什么情况?只需触发连接到取消按钮的内容??

魔力来自于控制,与焦点机制有关。它会将所有事件重定向到焦点元素(在框架深层的静态类中)。在mousebuttondown上,这个焦点是通过base.Focus()设置的;

所以:只需覆盖MouseLeftButtonDown并设置焦点,一切都会正常工作。

可以放置在按钮(或按钮模板)中的控件示例:

代码语言:javascript
复制
public class InAction : ContentControl
{
    public InAction()
    {
        this.DefaultStyleKey = typeof(InAction);
        this.MouseLeftButtonDown += new MouseButtonEventHandler(InAction_MouseLeftButtonDown);
    }

    void InAction_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        base.Focus();   
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1876135

复制
相关文章

相似问题

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