2017-01-09 5 views
0

Je rencontre un problème avec l'affichage de boîtes de dialogue à partir d'un modèle de vue. Le problème est que le "contenu sous-jacent n'est pas obscurci et désactivé" comme le dit la documentation. Si je clique sur la vue sous-jacente, le bouton de la boîte de dialogue câblée à la commande fermée est parfois désactivé et l'utilisateur ne peut pas cliquer dessus.Boîte de dialogue MaterialDesignXaml de Caliburn.Micro View Model

Je définis la DialogHost dans mon MainView comme celui-ci (également essayé dans le ShellView):

<materialDesign:DialogHost 
     HorizontalAlignment="Center" 
     VerticalAlignment="Center" 
     CloseOnClickAway="True" /> 

De mon MainViewModel je montre la boîte de dialogue comme ceci:

Dim errView As New ErrorView 
    Dim res = Await DialogHost.Show(errView) 

Je télégraphié la fermer la commande sur un bouton dans la boîte de dialogue ErrorView comme ceci:

Command="{x:Static materialDesign:DialogHost.CloseDialogCommand}" 

Répondre

1

Votre problème est avec le défin ion de DialogHost; vous l'avez comme un élément vide.

Le DialogHost est un ContentControl. Tout à l'intérieur est ce qui deviendra obscurci. Donc, vous définissez à la racine de votre un peu plus comme principale Fenêtre/Page XAML,:

<materialDesign:DialogHost CloseOnClickAway="True"> 
    <StackPanel> 
    <TextBlock>Hello World</TextBlock> 
    <TextBlock>This is the main content of my application</TextBlock> 
    </StackPanel> 
</materialDesign:DialogHost> 
+0

Bon sang si simple ... merci pour l'aide. Je n'ai pas remarqué le problème avec le bouton de fermeture étant désactivé. Est-ce lié d'une manière ou d'une autre? – jweaver

+0

Probablement oui, la commande de fermeture statique est RoutedCommand, donc elle bouillonne, à la recherche d'un DialogHost à exécuter. –