C# 我如何通过双击文本框来创建事件以获得焦点?(Windows Phone)

C# 我如何通过双击文本框来创建事件以获得焦点?(Windows Phone),c#,silverlight,windows-phone-7,silverlight-4.0,C#,Silverlight,Windows Phone 7,Silverlight 4.0,我有一个文本框,当我点击它时,我调用一个事件获取焦点。当我双击它时,行为是不同的,我如何才能通过双击此文本框来创建获取焦点的事件?原因很简单 如果您注意到,提供的参数是不同的 private void textBox1_MouseDoubleClick(object sender, MouseEventArgs e) { } private void textBox1_Click(object sender, EventArgs e) { } 是,如果您希望它们类似于相同的,则可以从属性

我有一个文本框,当我点击它时,我调用一个事件获取焦点。当我双击它时,行为是不同的,我如何才能通过双击此文本框来创建获取焦点的事件?

原因很简单

如果您注意到,提供的参数是不同的

private void textBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{

}

private void textBox1_Click(object sender, EventArgs e)
{

}
是,如果您希望它们类似于相同的,则可以从属性中选择“MouseClick”事件。 干杯

您可以使用文本框的OnTap()和OnDoubleTap()方法。在每个方法中,您可以定义不同的逻辑,并在文本框上设置焦点

更新:

下面是一个简单的代码结构,介绍如何使其工作:

XAML:


我在模拟器和设备上测试了这一点,它在两种情况下都能工作

该代码不适用于Silverlight for Windows Phone版本中的文本框。检查MSDN:是的,我没有这个事件,这是一个pityOnDoubleTap()方法根本没有调用。你是在模拟器中还是在真实设备上测试过这个吗?在Debud中,它没有出现在这个方法中,使用模拟器,你的代码正确吗?查看我的更新答案以获得有效的解决方案。它可以工作,但不总是这样,尝试创建一个文本框,当它没有焦点时,它不工作,当我点击一次并获得焦点时,它就工作了
<TextBox x:Name="InputTextBox" Margin="0,0,0,520" />
public MainPage()
{
    InitializeComponent();
    InputTextBox.Tap += InputTextBoxTap;
    InputTextBox.DoubleTap += InputTextBoxDoubleTap;
}

private void InputTextBoxDoubleTap(object sender, System.Windows.Input.GestureEventArgs e)
{
    InputTextBox.Text = "Double tapped!";
}

private void InputTextBoxTap(object sender, System.Windows.Input.GestureEventArgs e)
{
    InputTextBox.Text = "Tapped!";
}