首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么AdornerLayers总是最上层的呢?有办法改变吗?

为什么AdornerLayers总是最上层的呢?有办法改变吗?
EN

Stack Overflow用户
提问于 2012-11-03 13:36:48
回答 2查看 2.7K关注 0票数 4
  1. 为什么装饰层总是呈现为应用程序中最顶层(在AdornerDecorator下-参考屏幕截图)?
  2. 是否有一种方法可以更改可在其上绘制装饰的层/级别?

在下面的屏幕快照中,AdornerLayer被添加到AdornerDecorator中,Adorner (MyAdorners)被添加到这个AdornerLayer中。但是AdornerLayer是这样检索的,

代码语言:javascript
复制
        AdornerLayer layer1 = AdornerLayer.GetAdornerLayer(button1);
        layer1.Add(new MyAdorner(button1));

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-03 16:36:11

回答我的第二个问题,

是否有一种方法可以更改可在其上绘制装饰的层/级别?

我想我已经找到解决办法了。只需将AdornerDecorator元素放置在需要呈现装饰者的级别上即可。任何需要装饰层的控件都会使用这个AdornerDecorator元素来放置它的装饰器。

在这里,我使用下面的代码片段将装饰器移动到了一个不同的级别。

代码语言:javascript
复制
<Window x:Class="CustomAdornerLayer.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<Grid>
    <StackPanel Background="Yellow" Width="Auto">
        <Button>Button3</Button>
    </StackPanel>
    <AdornerDecorator>
        <Grid>
            <AdornerDecorator>
                <Button x:Name="button1" Margin="70,73,265,158">Button1</Button>
            </AdornerDecorator>
            <AdornerDecorator>
                <Button x:Name="button2" Margin="87,51,248,180">Button2</Button>
            </AdornerDecorator>
        </Grid>
    </AdornerDecorator>
</Grid>

当AdornerLayer仍然以同样的方式被查询时,

代码语言:javascript
复制
        AdornerLayer layer1 = AdornerLayer.GetAdornerLayer(button1);
        layer1.Add(new MyAdorner(button1));
        AdornerLayer layer2 = AdornerLayer.GetAdornerLayer(button2);
        layer2.Add(new MyAdorner(button2));

如果我错了,请纠正我。

票数 6
EN

Stack Overflow用户

发布于 2012-11-03 13:44:57

Adorner层由AdornerDecorator提供。当您请求指定控件的层时,wpf将查找AdornerDecorator上的可视树。你为什么要改变这个逻辑?Adorners故意这样做,使装饰出现在修饰元素的上方。

您可以使用AdornerDecorator自己搜索VisualTreeHelper

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13209695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档