2009-02-20 2 views
6

Я программно добавляю UserControl к другому в Silverlight 2, добавляя его в коллекцию «Дети» родительского элемента управления. Сначала это прекрасно работает. Если я сделаю что-то еще к окну (в моем случае я прокручиваю всю панель вне поля зрения, а затем снова на просмотр), то она, по-видимому, изменяет порядок визуализации и заставляет мой элемент управления находиться за остальными. Я ищу способ контролировать это поведение, чтобы заставить мое окно быть наверху. Элемент Canvas имеет свойство ZOrder, которое позволяет вам установить это, но я не использую Canvas, я использую Grids.Управление порядком рендеринга (ZOrder) в Silverlight без использования Canvas control

Я играл с использованием Children.Insert и messing с индексом, и это также изменяет порядок визуализации, но это похоже на kludgey способ решить проблему. Как я могу заставить свой контроль быть наверху?

--Matt

ответ

4

В сетке ZOrder должен быть продиктован приказом или детьми. Положение 0 находится внизу, позиция 1 находится сверху позиции 0 и так далее.

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

http://msdn.microsoft.com/en-us/library/system.windows.controls.canvas.zindex(VS.95).aspx

1

Вы должны быть в состоянии использовать Canvas.ZIndex в сетке, на самом деле это неверно названы и должно быть Panel.ZIndex, но он должен работать.

7

Canvas.ZIndex будет работать на сетке (и любой другой элемент управления, полученного из UIElement).

Как вы можете видеть из http://msdn.microsoft.com/en-us/library/bb979730(VS.95).aspx Все, что происходит от UIElement (базовый класс для всех визуализированных элементов в Silverlight), поддерживает свойство Canvas.ZIndex, а также Canvas.Top и Canvas.Left.

 Смежные вопросы

  • Нет связанных вопросов^_^