Я получил Adorner с пользовательской функцией ArrangeOverride, которая заботится о размещении и размере содержимого ContentPresenter.
Если элемент отображается при первой визуализации страницы, все работает нормально.Но если украшенный элемент не виден в это время (например, в не показанной части ScrollPanel), злоумышленник никогда не рисуется, даже тогда панель прокручивается вниз, и элемент становится видимым.
protected override Size ArrangeOverride(Size finalSize)
{
Rect adorneredElementRect = GetBounds(AdornedElement);
...
}
Inв этом случае adorneredElementRect - Пусто, и мой расчет не удастся.
Поведатель прикреплен к текстовому полю с помощью Поведения.
public class MyBehavior : Behavior<TextBox> {
...
protected override void OnAttached()
{
myAdorner = new MyAdorner(AssociatedObject);
var layer = AdornerLayer.GetAdornerLayer(VisualHelper.GetTopAdornerLayer(AssociatedObject));
layer.Add(myAdorner);
base.OnAttached();
}
Как принудительно вызвать вызов ArrangeOverride, когда элемент становится видимым?