Является ли Canvas.ZIndex для страницы отверстия? Я пытался переместить элемент в фоновом режиме ниже всех других элементов. Я установил ZIndex конкретный элемент в -1, но ничего не произошло. Элемент все еще впереди.
Есть ли другая возможность изменить порядок?
благодаря
У меня есть сетка с 1 строкой и 1 столбец. На этой сетке я помещал две другие решетки. На моей первой сетке я рисую линии, на второй - некоторые границы. (Есть много других элементов управления), как здесь
<Grid>
<Grid>
lines
</Grid>
<Grid>
borders
rectangles
</Grid>
</Grid>
Теперь линии должны быть нарисованы над границами, но под прямоугольниками.
Как я могу это сделать?
Вы влияете на z-index в XAML двумя способами:
Canvas
и устанавливаете Canvas.ZIndex
.Это ваши варианты.
ZIndex является локальным. Таким образом, все элементы в первой сетке будут либо нарисованы первыми (как в вашем текущем примере), либо последними, если в любой из этих Grids есть ZIndex.
Если вы хотите чередовать, то вы должны иметь
<Grid>border</Grid>
<Grid>lines</Grid>
<Grid>rectangles</Grid>
Установка ZIndex на элемент, который не является прямым дочерним элементом Canvas, ничего не делает.
Контур рисования холста немного похож на этот
// make unique small-to-big list of all ZIndex of all elements of a canvas
var zvalues = canvas.elements.Select(ZIndex).Unique().Sort(DESC);
// draw them back to front
foreach (var z in zvalues) {
foreach (var e in canvas.elements.Where(e=>e.ZIndex==z)) {
e.Draw();
}
}