SL4文本框上的IsTabStop=False [英] IsTabStop = False on a SL4 Text box

查看:12
本文介绍了SL4文本框上的IsTabStop=False的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在一个文本框上将IsTabStop设置为False,我知道这会使该控件无法接收焦点,但根据Silverlight Forums,它应该仍然能够接收鼠标事件。我连接了MouseLeftButtonUp事件,并在我的tbxTotal_MouseLeftButtonUp方法中设置了一个断点,并且在调试期间它从不被击中。SL论坛上的帖子现在已经很老了,所以可能是在某个更新中被更改了。我想要一个文本框,不能用Tab键切换到,但仍然可以编辑。真的这么难吗?

推荐答案

我没有意识到这一点,但似乎是这样的,另外,我似乎无法让MouseLeftButtonUp点火。不过,MouseLeftButtonDown确实会触发,您可以使用它来执行此攻击。

<TextBox IsTabStop="False" MouseLeftButtonDown="TextBox_MouseLeftButtonDown" />

然后在代码中,您可以像这样处理事件。

    private void TextBox_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        var textBox = ((TextBox) sender);
        textBox.IsTabStop = true;
        textBox.Focus();
        textBox.IsTabStop = false;
    }

可能值得将其包装在CustomControl中

public class FocusableTextBox : TextBox
{
    protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
    {
        if (!IsTabStop)
        {
            IsTabStop = true;
            Focus();
            IsTabStop = false;
        }

        base.OnMouseLeftButtonDown(e);
    }
}

这篇关于SL4文本框上的IsTabStop=False的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆