WPF控件在ElementHost中不可见。

3

我在Winforms项目中使用了一个WPF控件(ICSharpCode.AvalonEdit.TextEditor),并将其放置在ElementHost中。

通过调试器,我已确认TextEditor实际上被设置为ElementHost的子控件,并且所有属性都被正确设置,但它是不可见的且无法与之交互(就好像你将IsVisible属性设置为false一样)。

ElementHost显示出来了,我可以与之交互,但是子控件不可见。我已检查过TextEditor的Visibility和IsVisible属性是否正确设置。

我从未编写过WPF应用程序,因此请尝试任何建议,即使非常简单,也可能意味着我的WPF控件是不可见的。这可能与ElementHost、控件本身或特定的AvalonEdit行为有关。

有什么建议吗?


你在WPF控件上设置了宽度和高度或者设置了垂直对齐和水平对齐吗? - Rune Andersen
垂直和水平对齐都设置为Stretch,但宽度和高度都设置为NaN(哈哈)。这是怎么回事?如何使TextBox自适应ElementHost的大小? - Migwell
你尝试在ElementHost中插入一个简单的控件,比如按钮吗?Winforms有时会出现奇怪的问题 :) 你是在构造函数中还是在某个奇怪的事件(比如OnLayout、OnPaint等)中插入ElementHost的? - Rune Andersen
我尝试了你遇到的同样问题。我创建了一个新的Winforms应用程序,并在表单中添加了HostElement。在代码后面,我写了TextEditor te = new TextEditor(); this.elementHost1.Child = te; 然后它就可以工作了。 - Kirill Lykov
我用按钮进行了测试,结果很好。所以可能是AvalonEdit的行为问题... - Migwell
显示剩余2条评论
1个回答

0
原来我将TextEditor的margin属性设置得太高了,像这样:
TextEditor.Margin = 1000;

而此边距覆盖整个控件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接