我找不到任何方法将装饰器固定到装饰元素的另一个点,而不是左上角点。我知道您可以通过实施ArrangeOverride来相对于此点移动装饰器,但是合作系统始终基于左上角。
有什么想法吗?
答案 0 :(得分:2)
不是我知道的。但是,除了ArrangeOverride之外,还有一种方法可以定位Adorner内容:AdornerPanel Class。随着AdornerPlacementCollection Methods
您可以确定您的Adorner相对于装饰者或内容的位置和大小,例如有一个因子和一个偏移量。请参阅此示例,将Adorner置于装饰控件上方:
// create AdornerPanel and add your adorner content
AdornerPanel adornerPanel = new AdornerPanel();
adornerPanel.Children.Add(yourAdornerContent);
// set placements on AdornerPanel
AdornerPlacementCollection placement = new AdornerPlacementCollection();
placement.PositionRelativeToAdornerHeight(-1, 0);
placement.PositionRelativeToAdornerWidth(1, 0);
AdornerPanel.SetPlacements(adornerPanel, placement);
// create Adorner with AdornerPanel inside
Adorner adorner = new YourAdorner(adornedElement)
{
Child = adornerPanel
};
答案 1 :(得分:1)