当前位置:  开发笔记 > 编程语言 > 正文

WPF Adorner Layer Outside Window

如何解决《WPFAdornerLayerOutsideWindow》经验,为你挑选了1个好方法。

我有一个带文本框控件的WPF窗口.该控件具有一个装饰器,当文本框具有键盘焦点时,该装饰器可见.

正如您在下面的屏幕截图中看到的那样,装饰器仅限于窗口的边界.如何才能显示完整的装饰?

在此输入图像描述

Adorner模板是:


    
        
            
        
        
            
        
    

Jcl.. 6

这是不可能的.该AdornerLayer界限到的边界AdornerDecorator(该Window有一个,如果你还没有定义之一),所以它只是不可能是装饰的范围之外去了.

您可以使用定义弹出窗口的Popup(MSDN)获得所需内容,但绝对不使用装饰器.主要区别在于弹出窗口不是窗口可视树的一部分,因此它不会随之移动或调整大小.

如果您想要通过桌面的效果(例如您正在显示的投影),您还可以定义自己的弹出窗口.这确实很棘手,但可行.通过大量的工作,你可以随着你的窗口移动和调整大小(从而模拟"窗外装饰"),但这绝对不会快速或容易编码(对于正常情况Popup,你可以只是勾上你WindowSizeChangedLocationChanged事件,并相应地移动)



1> Jcl..:

这是不可能的.该AdornerLayer界限到的边界AdornerDecorator(该Window有一个,如果你还没有定义之一),所以它只是不可能是装饰的范围之外去了.

您可以使用定义弹出窗口的Popup(MSDN)获得所需内容,但绝对不使用装饰器.主要区别在于弹出窗口不是窗口可视树的一部分,因此它不会随之移动或调整大小.

如果您想要通过桌面的效果(例如您正在显示的投影),您还可以定义自己的弹出窗口.这确实很棘手,但可行.通过大量的工作,你可以随着你的窗口移动和调整大小(从而模拟"窗外装饰"),但这绝对不会快速或容易编码(对于正常情况Popup,你可以只是勾上你WindowSizeChangedLocationChanged事件,并相应地移动)


作为参考,我最终建议使用Popup
推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有