WPF Adorner Clipping

У меня есть ItemsControl в ScrollViewer, Предметы в ItemsControl расширены до DataTemplate который в основном состоит из Adorner,

Теперь проблема заключается в том, что при прокрутке визуальные дети Adorner видны снаружи ScrollViewer, Допустим, я прокручиваю от горизонтального смещения от 0 до 100, визуальные дочерние элементы Adorner двигаться влево и видны рядом с ScrollViewer, хотя они должны быть скрыты. настройка ClipToBounds на ItemsControl или ScrollViewer не работает.

Я это понимаю Adorner отображаются над всеми элементами в z-порядке, но они действительно не должны быть видны в таких случаях, как с ScrollViewer, Украшенный Element кстати ведет себя как ожидалось и не виден через ScrollViewer,

Есть ли простой способ "обрезать" Adorners, так что они видны только в видимой области прокрутки?

Спасибо Андрей

4 ответа

Решение

В следующем потоке Вэй Чжоу повторно шаблонизирует ScrollViewer, поэтому Adorner кнопки ограничен.

Реализовать выделение выделения - советуйте пожалуйста

С уважением, Дэвид

Настройка ClipToBounds на содержании контроля недостаточно. Вы должны установить рекламодателя IsClipEnabled собственность тоже.

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

Содержимое ScrollViewer визуализируется экземпляром ScrollContentPresenter. ScrollContentPresenter имеет свой собственный слой рекламного объявления, доступный через свойство ScrollContentPresenter.AdornerLayer.

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

Мое решение состояло в том, чтобы вставить область клипа в контекст рисования, визуализировать все, что мне нужно, и вставить вырез в конце, например так:

drawingContext.PushClip(new RectangleGeometry(new Rect(0, 0, this.AdornedElement.RenderSize.Width, this.AdornedElement.RenderSize.Height)));
// continue drawing
drawingContext.Pop();

Вы можете подключить это к любому Adorner, границы уже доступны как часть элемента.

Другие вопросы по тегам