2017-01-16 2 views
0

Эй, все, что я пытаюсь понять, как вызвать SampleMessageDialog в моем собственном приложении.SampleMessageDialog в дизайне материалов WPF

До сих пор это код у меня есть для кнопки на моей форме, которая должна открыть окно сообщения:

Private Async Sub BrowseButton_Copy_Click(sender As Object, e As RoutedEventArgs) Handles BrowseButton_Copy.Click 
    msgBoxPop.showPop() 
End Sub 

И это showPop:

Imports MaterialDesignThemes.Wpf 
Imports newRegisterProg.MaterialDesignColors.WpfExample.Domain 

Public Class msgBoxPop 
    Public Shared Async Sub showPop() 
     Dim sampleMessageDialog = New SampleMessageDialog() 

     With sampleMessageDialog 
      .Message.Text = "TEST!" 
     End With 

     Await DialogHost.Show(sampleMessageDialog, "RootDialog") 
    End Sub 
End Class 

И, наконец, это является usercontrol:

<UserControl x:Class="MaterialDesignColors.WpfExample.Domain.SampleMessageDialog" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" 
      mc:Ignorable="d" 
      x:Name="messagePOP" 
      d:DesignHeight="300" d:DesignWidth="300" 
      MaxWidth="400"> 
    <Grid Margin="16"> 
     <Grid.RowDefinitions> 
      <RowDefinition /> 
      <RowDefinition /> 
     </Grid.RowDefinitions> 
     <TextBlock x:Name="Message" 
        Margin="0 6 0 0" 
        FontSize="18" Grid.Row="0"/> 
     <Button Grid.Row="1" 
       IsDefault="True" Style="{DynamicResource MaterialDesignFlatButton}" 
       HorizontalAlignment="Right" 
       Margin="16 16 16 0" 
       Command="{x:Static materialDesign:DialogHost.CloseDialogCommand}"> 
      ACCEPT 
     </Button> 
    </Grid> 
</UserControl> 

В настоящее время wh ru Я нажимаю кнопку, на которой появляется ошибка:

Дополнительная информация: Нет загруженных экземпляров DialogHost.

на линии:

Await DialogHost.Show(sampleMessageDialog, "RootDialog") 

ответ

1

У вас есть DialogHost в XAML приложения в любом месте?

Хорошее место для этого является правильным в корне, внутри окна и содержащий остальную часть вашего приложения:

<Window ....> 
    <materialDesign:DialogHost> 
     ...your app 
    </<materialDesign:DialogHost> 
</Window> 
+0

является то, что можно сделать в коде? – StealthRT

+0

Несомненно. Вы добавляете контент приложения в код сейчас? Я не знаю специфического синтаксиса VB, но перед добавлением приложения в Content of Window добавьте DialogHost и добавьте указанное приложение в Content of the DialogHost. DialogHost расширяет ContentControl, поэтому просто используйте его как этот стандартный элемент управления. – Joe

Смежные вопросы