【问题标题】:WPF Control inside ElementHost is invisibleElementHost 中的 WPF 控件不可见
【发布时间】: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和Horizo​​ntalAlignment?
  • 垂直和水平对齐都设置为拉伸,但宽度和高度都设置为 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


【解决方案1】:

事实证明,我将 TextEditor 的边距属性设置为一个太高的数字,如下所示:

TextEditor.Margin = 1000;

而且这个边距覆盖了整个控件。

【讨论】:

    猜你喜欢
    • 2013-08-25
    • 2012-08-05
    • 2012-01-17
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2019-03-14
    相关资源
    最近更新 更多