see*_*dge 6 silverlight tabstop silverlight-4.0
我在文本框中将IsTabStop设置为false,我知道这会使控件无法获得焦点,但根据Silverlight论坛,它应该仍然能够接收鼠标事件.我在我的tbxTotal_MouseLeftButtonUp方法中连接了MouseLeftButtonUp事件和断点,并且它在调试期间永远不会被命中.SL论坛中的线程现在已经很老了,所以也许这在某个地方更新了.我想要一个无法选项卡的文本框,但仍然可以编辑.真的应该这么难吗?
我没有意识到这一点,但情况似乎如此,此外,我似乎无法让 MouseLeftButtonUp 触发。MouseLeftButtonDown 确实会触发,并且使用它您可以进行此黑客攻击。
<TextBox IsTabStop="False" MouseLeftButtonDown="TextBox_MouseLeftButtonDown" />
Run Code Online (Sandbox Code Playgroud)
然后在代码中你可以像这样处理事件。
private void TextBox_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var textBox = ((TextBox) sender);
textBox.IsTabStop = true;
textBox.Focus();
textBox.IsTabStop = false;
}
Run Code Online (Sandbox Code Playgroud)
将其包装在 CustomControl 中可能是值得的
public class FocusableTextBox : TextBox
{
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
if (!IsTabStop)
{
IsTabStop = true;
Focus();
IsTabStop = false;
}
base.OnMouseLeftButtonDown(e);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1064 次 |
| 最近记录: |