我正在使用ElementHost在WinForms应用程序中托管WPF自定义控件。控件具有粗边框,当控件具有焦点时,该边框应该是可见的。边界在对照的“外部”,即具有负边距。
问题是焦点边框永远不会出现。如果我将包含我的控件的填充的边框添加到ElementHost,它将变为可见。但是,我想将控件放在ElementHost中,因为它不会破坏在使用存根之前进行的布局。有什么想法吗?
感谢。
答案 0 :(得分:2)
ElementHost有自己的窗口句柄,它托管其中的所有WPF元素。它是一个单独的WinForms控件。
一般来说,窗口句柄不能在其边界矩形之外绘制(在这种情况下,它将是ElementHost的边界矩形,相对于其父WinForms控件)。
所以不,你不能在你的WPF元素上使用负边距来在ElementHost之外绘制。您需要在WinForms中绘制边框,或修改布局以使ElementHost更大。