【发布时间】:2011-05-28 18:30:21
【问题描述】:
我在 ElementHost 内的 Winforms 项目中有一个 WPF 控件(ICSharpCode.AvalonEdit.TextEditor)。
我已经通过调试器确认 TextEditor 实际上设置为 ElementHost 的子级,并且它的所有属性都设置正确,它只是不可见且无法与之交互(就像您将 IsVisible 属性设置为假)。
ElementHost 出现了,我可以与之交互,但是 Child 控件不可见。我检查了 TextEditor 的 Visiblity 和 IsVisible 属性是否应有。
我从未真正编写过 WPF 应用程序,因此请尝试任何建议,无论多么简单,这可能意味着我的 WPF 控件是不可见的。这可能与 ElementHost、控件本身或特定的 AvalonEdit 行为有关。
有什么建议吗?
【问题讨论】:
-
你有没有在wpf控件上设置任何宽度和高度或者设置VerticalAlignment和HorizontalAlignment?
-
垂直和水平对齐都设置为拉伸,但宽度和高度都设置为 NaN (lol)。那是怎么发生的?如何使 TextBox 调整大小以适合 ElementHost?
-
您是否尝试在您的 elementhost 中插入一个简单的控件(如按钮)? Winforms 可以做一些奇怪的事情 :) 你在什么时候插入 elementhost - 在构造函数中,或者在一些奇怪的事件中(如 OnLayout、OnPaint 等)
-
我尝试遇到与您相同的问题。我创建了一个新的 Winforms 应用程序并在表单中添加了 HostElement。在后面的代码中我写了 TextEditor te = new TextEditor(); this.elementHost1.Child = te;它有效
-
我用按钮测试过,效果很好。所以它可能是 AvalonEdit 行为...
标签: c# wpf winforms visibility avalonedit