WinForms中的WPF拼写检查上下文菜单不会超出控制范围

时间:2015-05-06 17:33:27

标签: c# wpf winforms .net-4.0

所以我尝试使用在this post中定义的自定义控件在Winforms表单中启用了SpellCheck的WPF TextBox时出现了一个奇怪的问题。
这很好用,我已经尝试在我自己的沙箱项目中使用它,它看起来很棒。问题是当我尝试在我们现有的一个表单中替换Winforms TextBox时。拼写检查上下文菜单是"被困"在控件内,所以我只能看到菜单的上/下箭头。
enter image description here
我对Winforms不太熟悉,因为我主要使用WPF,所以我很难确定问题。上面显示的文本框是链接帖子中提到的自定义控件。该控件包含在表格TableLayoutPanel中。如何让上下文菜单展开并实际可见?

修改
首先,为了澄清,当打开表单的控制台应用程序中显示时,上下文菜单通常会出现。我做了一些测试并创建了一个新的Web项目(原始问题项目是什么),带有一个打开表单的按钮,然后发生问题行为。控制台应用程序和Web应用程序之间的区别是什么?

编辑2
我尝试了这个post中的建议,认为上下文菜单实际上只是自动调整大小(以适应父控件)。但这些解决方案似乎也没有任何区别。

编辑3
使用snoop查看工作上下文菜单(windows应用程序)和不工作的菜单(xbap)之间的差异后,我可以看到的唯一区别是xbap实例的上下文菜单的DesiredSize具有更小的尺寸,我只是不知道为什么。

1 个答案:

答案 0 :(得分:-1)

wpf控件是一个通过ElementHost 托管在winforms 中的控件。

因此它在内生活在父母提供的区域内。

唯一的方法是扩展它,就是改变父级的大小。通过创建一个winform超大文本框作为快速调试示例来试一试。请注意尺寸更改是否有效。如果可以,GUI可以适应这种变化吗?我无法回答这个问题。