Размещение модального диалога в ContentControl - PullRequest
0 голосов
/ 07 февраля 2012

Вместо размещения моего модального диалога в центре моего MainWindow, я хотел бы разместить его в одном из ContentControls в моем MainWindow.Надеюсь, кто-то может посоветовать мне, как это сделать.Спасибо.

Ответы [ 2 ]

1 голос
/ 02 июля 2012

У меня есть пример на github пользовательского FrameworkElement, который позволяет отображать модальное содержимое поверх основного содержимого.

Элемент управления можно использовать так:

<c:ModalContentPresenter IsModal="{Binding DialogIsVisible}">
    <TabControl Margin="5">
            <Button Margin="55"
                    Padding="10"
                    Command="{Binding ShowModalContentCommand}">
                This is the primary Content
            </Button>
        </TabItem>
    </TabControl>

    <c:ModalContentPresenter.ModalContent>
        <Button Margin="75"
                Padding="50"
                Command="{Binding HideModalContentCommand}">
            This is the modal content
        </Button>
    </c:ModalContentPresenter.ModalContent>

</c:ModalContentPresenter>

Особенности:

  • Отображение произвольного содержимого.
  • Не отключает основной контент во время отображения модального контента.
  • Отключает доступ мыши и клавиатуры к основному содержимому, пока отображается модальное содержимое.
  • Является модальным только для содержимого, которое оно охватывает, а не для всего приложения.
  • может использоваться в дружественном для MVVM виде путем привязки к свойству IsModal.
0 голосов
/ 07 февраля 2012

У меня есть пользовательский UserControl, созданный для выполнения этого поведения. Статья с кодом найдена здесь , и ее можно использовать так:

<local:PopupPanel 
    Content="{Binding PopupContent}"
    local:PopupPanel.PopupParent="{Binding ElementName=PopupParentPanel}"
    local:PopupPanel.IsPopupVisible="{Binding IsPopupVisible}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...