Я пытаюсь создать всплывающее диалоговое окно на странице xaml в моем приложении WPF. Я использую Материальный дизайн в XAML Toolkit.
Страница находится в рамке главного окна. Я хочу, чтобы затемненный фон диалогового окна полностью перекрывал меню в главном окне. (Пример изображения: Фон диалогового окна, переходящий через меню и полное окно)
На моей странице с кнопкой у меня есть следующий код
<Button Command = "{x:Static materialDesign:DialogHost.OpenDialogCommand}"
Width = "128" Grid.Row = "3" Grid.Column = "1" >
<Button.CommandParameter>
<system:DateTime></system:DateTime>
</Button.CommandParameter>
Popup
</Button>
Затем в моем главном окне у меня есть следующий код:
<DataTemplate DataType = "{x:Type system:DateTime}">
<StackPanel Margin = "16">
<TextBlock>Example!!</TextBlock>
<Button Margin = "0 8 0 0" IsDefault = "True" Command = "{x:Static materialDesign:DialogHost.CloseDialogCommand}" Style = "{DynamicResource MaterialDesignRaisedDarkButton}">Close</Button>
</StackPanel>
</DataTemplate>
</ResourceDictionary>
</Window.Resources>
Я также включил
xmlns:system = "clr-namespace:System;assembly=mscorlib"
Когда я запускаю приложение, у меня нет ошибок, и оно открывается, но кнопка «Всплывающее окно» неактивна. Но этот код запускается и работает в Демонстрация материального дизайна, когда я его там меняю.
Я новичок в XAML, и это мое первое приложение, использующее этот язык, поэтому помощь будет очень признательна!
ваше содержимое MainWindow.xaml должно выглядеть так
<materialDesign:DialogHost Identifier = "RootDialog">
<materialDesign:DialogHost.DialogContent>
<!--dialog content-->
</materialDesign:DialogHost.DialogContent>
<Grid>
<!--your window cotnent-->
</Grid>
</materialDesign:DialogHost>