HwndSource不显示Adorner图层

bit*_*onk 1 wpf interop adorner adornerdecorator adornerlayer

当我托管使用HwndSource中的装饰器(文本框的错误边框)的WPF控件时,不会显示装饰器.似乎装饰层不在那里.为什么会这样,我该怎么做呢?这是一个已知的错误?

Dan*_*iel 7

AdornerLayer通常是Window类的默认模板的一部分.

如果要自定义Window模板或主机控件而不是Window; 你必须自己创建AdornerLayer.

这可以通过将WPF控件包装在System.Windows.Documents.AdornerDecorator中来完成:

hwndSource.RootVisual = new AdornerDecorator { Child = yourTextBox };
Run Code Online (Sandbox Code Playgroud)