Comment changer MahApps.Métro boîte de dialogue contenu du modèle de la largeur?
Je voudrais changer le modèle de base de la MahApps.Métro boîtes de dialogue (ou de créer une nouvelle boîte de dialogue type), parce que je voudrais afficher dans une étroite fenêtre de connexion. Droit maintenant, presque tous les deuxièmes mots dans le message sont dans une nouvelle ligne, mais il y a de belles et grandes, des espaces sur la droite et la gauche, dont je tiens à les réduire.
J'ai trouvé dans BaseMetroDialog.xaml
que le message est divisé en trois parties, verticalement: 25% de l'espace sur le côté gauche, 50% pour le contenu et 25% de l'espace sur le côté droit. Je voudrais changer ces numéros.
Mais comment pourrais-je changer le modèle de contrôle de BaseMetroWindow
avec mon nouveau?
OriginalL'auteur user3126075 | 2015-06-10
Vous devez vous connecter pour publier un commentaire.
Tout simplement créer votre propre style qui remplace la boîte de dialogue
Template
(et ajouter leDialogShownStoryboard
trop).L'espace de noms ici est
Maintenant utiliser ce style personnalisé par exemple, pour un dialogue personnalisé
Capture d'écran de démonstration principale
Mise à jour
Avec la dernière version de MahApps.Métro, il est maintenant possible de changer par exemple la
MessageDialog
style à l'échelle mondiale.Espère que ça aide!
oui, bien sûr. j'ai mis à jour ma réponse.
Merci encore! Vous m'a beaucoup aidé. J'ai déjà recompilé mahapps bibliothèques avec certains dependencyproperties j'ai ajouté dans le cas d'être en mesure de définir ces largeurs de colonne de code 🙂 Mais c'est la meilleure solution.
Dans le cas de toute autre noobs obtenir d'ici et d'avoir de la difficulté à comprendre les erreurs que vous obtenez à partir de copier-coller ce code, j'ai demandé un complément sur la question. Elle n'explique pas grand-chose si vous savez ce que vous faites, mais il m'a beaucoup aidé. Il est situé à here
OriginalL'auteur punker76
Il m'a fallu un peu de temps pour faire ce travail, mais pour les autres débutants comme moi, voici ma solution parfaitement documentée à la création de boîtes de dialogue personnalisées à l'aide de mahapps et MVVM.
Il y a probablement des aspects qui pourraient être améliorés, mais c'est ce qui a fonctionné pour moi.
Déclarer votre ressource de boîte de dialogue dictionnaire dans l'Application.xaml de sorte qu'il est disponible à l'échelle mondiale
App.xaml
Le dictionnaire de ressources contient le modèle de code de remplacement de la boîte de dialogue personnaliser
DialogResource.xaml
Créer une fenêtre WPF appelé UserInputDialog puis remplacer tous code xaml avec customdialog xaml.
Im en utilisant Caliburn Micro-syntaxe de lier les boutons pour le dialogue viewmodel (cal:Message.Attach=).
Dans le cas de la boîte de dialogue code xaml j'ai besoin de spécifier manuellement le bouton de liaisons pour une raison quelconque avec Caliburn Micro c'est pas automatique comme dans la vue principale du modèle.
UserInputDialog.xaml
Et le code-behind pour UserInputDialog:
UserInputDialog.xaml.cs
Créer viewmodel classe spécifiquement pour la saisie de l'utilisateur boîte de dialogue
UserInputViewModel.cs
De la création d'un ICommand classe pour passer à l'externe de la boîte de dialogue fermer la fonction via la boîte de dialogue viewmodel constructeur
SimpleCommand.cs
Et enfin, voici la vue principale du modèle de code pour afficher la mesure de la boîte de dialogue et les processus de l'utilisateur retourné entrée:-
MainViewModel.cs
OriginalL'auteur Hugh
Remplacer metrodialog de style et de fusionner les ressources de la station de Métro de la Fenêtre
pourriez-vous changer comme cette<Grille.RowDefinitions> <RowDefinition Height="10" /> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions>
Je pense que ce n'est pas le problème de la rowdefinitions, depuis les colonnes sont trop larges. Le problème est que le CustomDialog utilise encore son modèle d'origine. Par la façon dont j'ai mis à jour ma question avec une image montrant mon problème.
J'ai changé mon code, pouvez vous s'il vous plaît essayez-le maintenant.Si vous utilisez dll ou de la source de mahapps?
Salut! Unfotunately il jette xaml exception si je fais comme ça. Par la façon dont je suis l'aide de dll de mahapps.
OriginalL'auteur ReeganLourduraj
Une autre solution est fournie sur bug tracker: ne pas utiliser le Contenu de la propriété, utiliser le DialogTop à la place. Par exemple:
Mettre votre contenu personnalisé (par exemple, StackPanel) à l'intérieur de DialogTop et vous avez terminé.
OriginalL'auteur Mikhail Tumashenko