Wpf Adorner не отвечает на взаимодействия


Я пытаюсь создать оверлей в wpf (с затемненным фоном), похожий на те, которые вы можете найти в Интернете для всплывающих окон изображений. Я хотел бы, чтобы его можно было повторно использовать более чем в одной части приложения с разными типами контента.

это временный код конструктора класса украшения (просто чтобы попробовать)

private readonly Grid _grid = new Grid();

public DarkOverlayAdorner(UIElement adornedElement, Object content) :
        base(adornedElement)
{
     _grid.Background = new SolidColorBrush(Color.FromArgb(99, 0, 0, 0));
     IsHitTestVisible = true;
     var visual = content as UIElement;
     if (visual != null)
        _grid.Children.Add(visual);
}

Кроме того, в классе (конечно), у меня есть оверрайды MeasureOverride и ArrangeOverride, чтобы придать украшению правильный размер украшенного элемента, GetVisualChild и VisualChildCount ...

Проблема в том, что украшение отображается правильно, но нет событий или поведения применяются к украшенному элементу. Например:

AdornerLayer layer = AdornerLayer.GetAdornerLayer(textBoxProva);
layer.Add(new DarkOverlayAdorner(textBoxProva, new Button{Content = "prova"}));

Кнопка здесь отображается, но я не могу ее щелкнуть, и никакие эффекты при наведении курсора мыши не применяются. Я все еще не могу понять, в чем проблема.

5
задан nemenos 28 December 2010 в 13:17
поделиться