2013-10-03 6 views
3

Я не могу найти какой-либо способ крепления adorner к другой точке украшенного элемента, кроме верхней левой. Я знаю, что вы можете переместить adorner относительно этой точки, выполнив ArrangeOverride, но система координат всегда основана на верхнем левом углу.Можете ли вы прикрепить положение adorner в любом месте, кроме верхнего левого края украшенного элемента?

Любые идеи?

ответ

2

Не знаю, о чем я знаю. Но есть еще одна возможность расположить контент Adorner, чем ArrangeOverride: AdornerPanel Class. С его AdornerPlacementCollection Methods

  • PositionRelativeToAdornerHeight Метод
  • PositionRelativeToAdornerWidth Метод
  • PositionRelativeToContentHeight Метод
  • PositionRelativeToContentWidth Метод
  • SizeRelativeToAdornerDesiredHeight Метод
  • SizeRelativeToAdornerDesiredWidth Метод
  • SizeRelativeToContentHeight Метод
  • Метод SizeRelativeToContentWidth

вы можете определить положение и размер вашего Adorner относительно 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 
}; 
+0

Это открывает несколько дверей. Спасибо за интересный и подробный ответ. – Julius