Как мы можем программно изменить zindex элемента управления silverlight? - PullRequest
5 голосов
/ 26 ноября 2009

У меня есть некоторые элементы управления, добавленные в стековую панель программно. Я хочу, чтобы один из элементов управления в этой панели стека был помещен поверх другого элемента управления. В частности, я хочу разместить кнопку над изображением в этой панели стека. Я не смог найти свойство zindex в c # codebehind. Хотя это кажется очень простой проблемой, но я не могу найти ключ к решению этой проблемы. Кто-нибудь, пожалуйста ...... ??

Ответы [ 3 ]

7 голосов
/ 26 ноября 2009

Попробуйте разместить все свои элементы управления на холсте.Затем вы можете установить Zindex с помощью:

this.controlName.SetValue(Canvas.ZIndexProperty, 10d);
3 голосов
/ 26 ноября 2009

Только панель Canvas поддерживает свойство ZIndex. Stackpanel не делает, потому что каждый элемент размещен один за другим на панели, чтобы они не перекрывали друг друга. Это может немного раздражать, когда у вас есть анимированные преобразования, перемещающие элементы, потому что предыдущее предположение на самом деле не соответствует действительности.

В общем, если вам нужно поместить предметы в визуальный стек, то стекопанель не подходит для этого. Возможно, Canvas или вы могли бы использовать Grid, где порядковый номер элемента определяет его "порядок" в ячейке.

2 голосов
/ 24 мая 2012

От xaml:

<StackPanel Canvas.ZIndex="1">
</StackPanel>
...