除了左上点之外,我找不到任何方法将装饰器固定到被装饰元素的另一点。我知道您可以通过实现 ArrangeOverride 相对于这一点移动装饰器,但坐标系统始终基于左上角。
有什么想法吗?
最佳答案
据我所知没有。但是定位 Adorner 内容的可能性比 ArrangeOverride 多一种:AdornerPanel Class .有了它 AdornerPlacementCollection Methods
- PositionRelativeToAdornerHeight 方法
- PositionRelativeToAdornerWidth 方法
- PositionRelativeToContentHeight 方法
- PositionRelativeToContentWidth 方法
- SizeRelativeToAdornerDesiredHeight 方法
- SizeRelativeToAdornerDesiredWidth 方法
- SizeRelativeToContentHeight 方法
- SizeRelativeToContentWidth 方法
您可以确定装饰器相对于装饰器或内容的位置和大小,例如有一个因素和一个偏移量。请参阅此示例,将 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
};
关于c# - 您能否将装饰器的位置附加到装饰元素左上角以外的任何位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19161949/