2011-05-16 48 views
2

我试图实现类似于Popup的功能,不使用Popup,而是用基本装饰者装饰我的ContentControl。基本上,我希望ContentControl具有“覆盖”效果,因此它是最顶层的对象,高于所有其他元素 - 与Popup控件的类似。WPF Adorner Overlay问题

这里是我遇到的问题,我希望有人能指出我要去的地方错了:

我有两个行定义一个独立电网。第一行包含一个UI元素 - 例如,一个矩形。第二行包含我开发的自定义控件,用于模拟滑出的“抽屉”的功能。基本上,当我点击按钮时,我将制作一个TranslateTransform动画,以将我的ContentControl“向上滑动”。这工作正常 - 除了它在网格的第一行中的rectange下被裁剪。如果我删除网格中的行定义,那么当达到期望的行为时 - ContentControl将被移动到“向上”并且部分地移到矩形的“顶部”。这个矩形只是我想要实现的一个地方。我基本上想要一个抽屉类型控件,可以滑出,并在所有其他控件的顶部。

我对使用Adorner类有点新,所以我希望有人能指出我要出错的地方。

谢谢。

Chris

+0

你能否详细说明为什么你不能使用Popup为此? – aL3891 2011-05-16 12:05:50

+0

当然。假设我想创建从窗口底部向上滑动的抽屉的外观。如果我使用弹出窗口,只要将IsOpen设置为true,内容就会变得可见,因为它不考虑窗口边界,所以它不会再像从窗口底部向上滑动一样。 – Chris 2011-05-16 12:11:36

+2

如果将弹出窗口的高度设置为零并将其设置为全尺寸,该怎么办?您可以在弹出窗口中的布局面板上设置固定高度,以便不调整大小,而是使用弹出窗口进行剪辑。值得拍摄至少:) – aL3891 2011-05-16 13:26:31

回答

0

将adorner的父母更改为完整的网格,而不仅仅是您的控件。如果将控件放在网格行中,并将装饰器设置为装饰该控件,则通常会将该控件剪裁到该行,因为该控件是。