除了左上角之外,我找不到任何将装饰器固定到装饰元素的另一个点的方法。我知道您可以通过实现 ArrangeOverride 相对于这一点移动装饰器,但坐标系统始终基于左上角。
有任何想法吗?
除了左上角之外,我找不到任何将装饰器固定到装饰元素的另一个点的方法。我知道您可以通过实现 ArrangeOverride 相对于这一点移动装饰器,但坐标系统始终基于左上角。
有任何想法吗?
从来没听说过。但是定位 Adorner 内容的可能性比 ArrangeOverride 多:AdornerPanel Class。使用它的AdornerPlacementCollection 方法
您可以确定 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
};
这个解决方案对我来说是完美的 http://blogs.telerik.com/xamlteam/posts/08-05-22/wpf-series-creating-generic-adorner.aspx