none
多出来一个 窗口 RRS feed

  • 问题

  • 通过VS2017上调试应用程序,遍历Application.Current.Windows发现多了一个类型为Microsoft.VisualStudio.DesignTools.WpfTap.WpfVisualTreeService.Adorners.AdornerLayerWindow的窗口,请问这是哪来的,做什么用的?
    2019年1月21日 9:47

答案

  • 我不知道我说的对不对

    希望能给你一些简单的参考

    adorner是WPF较为特殊的技能点,我相信大部分的WPF的书籍都不会提到

    中文翻译是装饰器

    adorner具有可以在一个visual元素上在叠加一个或者多个visual的功能

    承载adorner的则是AdornerDecorator

    AdornerDecorator多为在窗口的顶层是为了保证装饰器能够良好的展示

    关于装饰器的MSDN参考

    AdornerDecorator

    Adorner

    How use it

    国内的博客

    WPF - Adorner

    Adorner 装饰器


    • 已标记为答案 Charis.C 2019年2月21日 1:26
    2019年1月22日 3:22
  • Hi Charis.C

    WpfTap是Visual Studio的WPF调试器,可帮助调试WPF内容树。

    比如说下面的例子:

    <Window x:Class="Test3.SimpleControl1.Window23"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:Test3.SimpleControl1"
            mc:Ignorable="d"
            Title="Window23" Height="450" Width="800">
        <Grid>
            <Button Width="300" Height="30"></Button>
        </Grid>
    </Window>
    

    有一个Window元素,window元素有一个Grid控件,网格控件里面有一个按钮。看起来逻辑上看XAML的元素之间的这种关系被称为“逻辑树”。现在要在屏幕上显示这个逻辑树,你需要很多视觉元素。像边框,文本等。所以当你将这些视觉元素添加到逻辑树时,完整的结构被称为“视觉树”。

    Adorner装饰器,在WPF中,从编辑框控件中光标的显示和选中效果的支持,到具有数据焦点的控件所具有的虚线外框,都是通过Adorner实现的。

    https://docs.microsoft.com/zh-cn/dotnet/framework/wpf/controls/adorners-overview

    Best  Regards,

    Cherry


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 Charis.C 2019年2月21日 1:26
    2019年1月22日 3:33
    版主

全部回复

  • 我不知道我说的对不对

    希望能给你一些简单的参考

    adorner是WPF较为特殊的技能点,我相信大部分的WPF的书籍都不会提到

    中文翻译是装饰器

    adorner具有可以在一个visual元素上在叠加一个或者多个visual的功能

    承载adorner的则是AdornerDecorator

    AdornerDecorator多为在窗口的顶层是为了保证装饰器能够良好的展示

    关于装饰器的MSDN参考

    AdornerDecorator

    Adorner

    How use it

    国内的博客

    WPF - Adorner

    Adorner 装饰器


    • 已标记为答案 Charis.C 2019年2月21日 1:26
    2019年1月22日 3:22
  • Hi Charis.C

    WpfTap是Visual Studio的WPF调试器,可帮助调试WPF内容树。

    比如说下面的例子:

    <Window x:Class="Test3.SimpleControl1.Window23"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:Test3.SimpleControl1"
            mc:Ignorable="d"
            Title="Window23" Height="450" Width="800">
        <Grid>
            <Button Width="300" Height="30"></Button>
        </Grid>
    </Window>
    

    有一个Window元素,window元素有一个Grid控件,网格控件里面有一个按钮。看起来逻辑上看XAML的元素之间的这种关系被称为“逻辑树”。现在要在屏幕上显示这个逻辑树,你需要很多视觉元素。像边框,文本等。所以当你将这些视觉元素添加到逻辑树时,完整的结构被称为“视觉树”。

    Adorner装饰器,在WPF中,从编辑框控件中光标的显示和选中效果的支持,到具有数据焦点的控件所具有的虚线外框,都是通过Adorner实现的。

    https://docs.microsoft.com/zh-cn/dotnet/framework/wpf/controls/adorners-overview

    Best  Regards,

    Cherry


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 Charis.C 2019年2月21日 1:26
    2019年1月22日 3:33
    版主