可以将装饰器的位置附加到装饰元素左上角以外的任何位置吗?
作者:互联网
我找不到将装饰器固定到装饰元素的另一点(左上角点除外)的任何方法.我知道您可以通过实现ArrangeOverride将装饰器相对于这一点进行移动,但是坐标系统始终基于左上角.
有任何想法吗?
解决方法:
从来没听说过.但是,比ArrangeOverride定位Adorner内容的可能性更大:AdornerPanel Class.使用的是AdornerPlacementCollection Methods
> PositionRelativeToAdornerHeight方法
> PositionRelativeToAdornerWidth方法
> PositionRelativeToContentHeight方法
> PositionRelativeToContentWidth方法
> SizeRelativeToAdornerDesiredHeight方法
> SizeRelativeToAdornerDesiredWidth方法
> SizeRelativeToContentHeight方法
> SizeRelativeToContentWidth方法
您可以确定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
};
标签:adorner,adornerlayer,wpf,c 来源: https://codeday.me/bug/20191122/2061681.html