WPF делает навигационную панель в оверлее (перед другим контентом) - PullRequest
2 голосов
/ 24 января 2010

У меня есть небольшое приложение WPF, где я показываю изображение. Я хотел бы иметь своего рода прозрачную панель навигации внизу, где у меня есть несколько маленьких кнопок (вращение влево / вправо, панорамирование и т. Д.). Но как сделать навигационную панель перед изображением? Я пробовал с сеткой из двух рядов, но, очевидно, панель навигации не находится "сверху" изображения, но находится в ряду ниже. Есть идеи?

Редактировать: Есть ли решение сделать другое окно и разместить его? или это можно сделать в одной сетке?

Редактировать: Это похоже на панель инструментов в нижней части Windows Vista / 7, где вы можете видеть окно «позади» через него.

Ответы [ 3 ]

1 голос
/ 25 января 2010

Попробуйте использовать сетку, состоящую всего из 1 строки, и выровняйте панель навигации по нижней части, сделав ее непрозрачной, чтобы сделать ее прозрачной.

<Grid>
    <Image.../>
    <Grid Name="NavBar" VerticalAlignment="Bottom" Opacity="50%">...</Grid>
</Grid>
1 голос
/ 25 января 2010

Сохраните существующий макет с помощью 2 RowDefinitions, но установите Grid.RowSpan = "2" для элемента Image. Также убедитесь, что ваши кнопки или контейнер для кнопок либо объявлены после изображения, либо установите для них более высокое значение Panel.ZIndex.

0 голосов
/ 25 января 2010

Не уверен, что это то, что вы ищете, но я попробую. Возможно, вы могли бы взглянуть на Adorners MSDN link , которая позволяет вам поместить поверхность рендеринга / слой поверх существующего контента. С небольшой хитростью вы можете сделать эту поверхность рендеринга полупрозрачной или добавить другие эффекты. Adorners - отличный способ сохранить ваш рендеринг довольно чистым, так что вы можете сохранить все модные вещи изолированными в слое adorner, и ваш код для отображения изображений останется нетронутым.

Только мои два цента ...

...