Как установить абсолютное положение диалогового окна в WPF MVVM - PullRequest
0 голосов
/ 08 января 2012

Итак, все мои элементы управления красиво разложены с использованием сеток и стековых панелей.

В некоторых случаях я хотел бы показать диалоговый слой (для добавления настроек и т. Д.).Он не должен быть модальным и не должен иметь прозрачного фона. Мне просто нужно, чтобы он был красивым, ненавязчивым и абсолютно позиционированным.диалоговое управление абсолютно, использует холст, который я не использую.Мне нужно, чтобы оно отображалось поверх регулярно выложенных элементов управления.

Какие есть варианты?

Ответы [ 3 ]

2 голосов
/ 08 января 2012

Вы можете использовать всплывающий элемент управления (для размещения содержимого установите значение PlacementRectangle) или слой Adorner, чтобы сделать это.Техника украшения описана здесь: http://bignickolson.com/2009/10/15/overlaying-controls-in-wpf-with-adorners/

0 голосов
/ 09 января 2012

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

0 голосов
/ 09 января 2012

Я думаю, что вы ищете, чтобы установить Panel.ZIndex на высокое значение для вашего диалога.Затем просто установите видимость, чтобы скрыть диалог.http://msdn.microsoft.com/en-us/library/system.windows.controls.panel.zindex.aspx

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TextBlock Panel.ZIndex="9999"  Background="Green">This TextBlock will always be on top as long as it is visible.</TextBlock>
        <TextBlock Background="Red">Test</TextBlock>
    </Grid>
</Window>

Затем вы можете объединить это с диалоговым окном в этом примере: WPF C # InputBox

...