繁体   English   中英

WPF窗口文本框-编辑文本会影响其他窗口

[英]WPF window textbox - editing text affects different window

我正在为我们的开发团队(VSIX解决方案)编写Visual Studio扩展。 当用户激活扩展程序时,他们将获得一个非常简单的WPF窗口形式。 使用以下代码加载窗口:

var myWindow = new SomeWpfWindow(myArgs)
{
    Owner = Application.Current.MainWindow
};
myWindow.Show();

这将打开并显示用户填写的表单。该表单有很多TextBox,这些TextBox经过2种方式绑定到DataContext。 没有什么不寻常的。

好吧,除了TextBox的行为。

当我在文本框中键入字符(“等等等等”)时,我看到这些字符显示在文本框中,并且它们也被写入绑定的DataContext属性中。

然而。 当我按下退格键或删除键时,TextBox中的文本保持不变,但是后面的窗口(在这种情况下,是活动代码文件)被编辑了。 行为不理想。

我通过使用.ShowDialog()而不是.Show()修复了此问题,但这是正确的解决方法,还是我只是埋葬了此问题?

谢谢

VS并不真正了解您的窗口,并且您会遇到加速键和命令路由问题。

正确的方法是实现一个模式对话框(请参阅我对有关Microsoft.VisualStudio.PlatformUI.DialogWinodow的其他帖子的回复)。

或者,您应该实现一个工具窗口。

真诚的

上面提供的解决方案解决了上述问题,但这并不是完整的解决方案。 我发现的是,关闭了WPF对话框窗口后,我便能够在打开的解决方案中键入C#窗口,但无法删除或使用退格键删除文本。 另外,当我尝试关闭Visual Studio时,它给出以下警告:

Microsoft Visual Studio已检测到某个操作正在阻止用户输入。 这可能是由于活动的模态对话框或需要阻止用户交互的任务引起的。 您是否仍要关闭?

请参考以下帖子,以解决此问题: Visual Studio Extension中的WPF模态窗口阻止输入

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM