Comment puis-je mise en page d'un formulaire dans WPF l'aide d'une grille ou d'autres contrôles pour la maintenabilité
J'ai un formulaire WPF, je veux jeter un formulaire standard sur elle. Chaque élément de formulaire aura une étiquette, puis un contrôle. Les choses assez standard.
Si j'utilise une pellicule de bord, il peut causer de l'étiquette et de la maîtrise d'être séparés, mais je veux qu'ils restent ensemble. Est-il un WPF équivalent de <nobr/>
?
Grid fonctionne, et permet pour la colonne couvrant etc, cependant, j'ai vraiment vraiment hate que vous spécifiez la colonne et de ligne sur chaque contrôle. Cela rend extrêmement gênant pour réorganiser ou insérer des choses dans la liste.
Est-il un moyen pour obtenir la grille à utiliser plus de style HTML de colonnes/lignes où les éléments sont un enfant de la ligne qu'ils sont, afin que je puisse re-commander facilement?
Est-il un autre contrôle qui me permettra de la mise en page un formulaire facilement?
OriginalL'auteur Jason Coyne | 2010-03-08
Vous devez vous connecter pour publier un commentaire.
N'oubliez pas que vous pouvez imbriquer des panneaux:
Aussi, pour les mises en page en colonnes, le partage de la taille de la portée de la Grille peut coordonner un nombre de grilles qui l'utilisent:
Je déteste la façon dont détaillé le code XAML pour ce qui est, surtout que vous devez répéter les définitions de colonnes. Si à la structure de vos classes correctement et utiliser des modèles, il n'est pas si terrible. Et remarquez que vous ne pouvez pas garder une trace des numéros de ligne n'importe où dans ce schéma, la réorganisation des champs est simple.
OriginalL'auteur Robert Rossney
Ce que vous pourriez être à la recherche d'une pile du panneau. À l'aide d'une verticale StackPanel vous permettra d'organiser votre étiquette et les contrôles de façon cohérente. Pour chaque étiquette et le contrôle que vous voudrez peut-être un horizontal de la pile du panneau comme
Maintenant, vous pouvez ajouter, supprimer, modifier et réorganiser le contenu de votre coeur sans se soucier de colonnes et de lignes.
OriginalL'auteur Michael Brown
Essayer le UniformGrid de contrôle.
OriginalL'auteur Rafa Castaneda
Voici une bibliothèque pour elle
Exemple xaml:
C'est un markupextension qui renvoie à la vanille, WPF
Grid
pour une belle peu profonde arborescence visuelle.OriginalL'auteur Johan Larsson
Découvrez Karl choses.
http://web.archive.org/web/20150620104259/https://karlshifflett.wordpress.com/2008/10/23/wpf-silverlight-lob-form-layout-searching-for-a-better-solution/
Simple et propre xaml:
Il semble que le site ci-dessus n'existe plus.
OriginalL'auteur Ray
Si vous pouvez accord, je vous conseille de Expression Blend si vous allez faire beaucoup de conception d'INTERFACE utilisateur. Il permet une simplification de la vue des éléments. L'imbrication des systèmes de contrôle dans les différents contenants est un bon moyen d'obtenir de l'INTERFACE utilisateur dynamique, mais structuré.
Généralement, je vais utiliser un panneau Grille de briser une fenêtre en zones fonctionnelles. Ensuite, je vais utiliser une série de StackPanels (souvent une pile verticale panneau horizontal StackPanels à l'intérieur, chacun avec un label et textbox).
Malheureusement Grilles seulement le travail que vous avez déclaré. Des éléments de spécifier la ligne et/ou colonne qu'ils se trouvent. Si vous avez utilisé le Mélange, en ajoutant des Colonnes de la Grille ou les Lignes auront contrôles de l'auto-magiquement changer la ligne/colonne spécification de rester dans la position qu'ils ont été placés.
Espère que cela aide.
Expression Blend Procès à Microsoft.
Mise à JOUR:
VS2012 a beaucoup de l'Expression Blend fonctionnalité cuit dans le concepteur WPF. Beaucoup de la nécessité d'une copie de Mélange ne sera plus là, les développeurs ont accès à un grand nombre de la fraîcheur des outils de Mélange.
OriginalL'auteur CodeWarrior
Dans nos produits, nous utilisons un HeaderedContentControl pour tracer des formes dans une grille. Le modèle de contrôle dispose d'une étiquette et d'un rembourrage/marges de sorte que le contrôle du contenu est toujours espacés de manière appropriée. Dans le XAML, nous venons d'ajouter dans les colonnes.
J'avais poster quelques XAML, mais je suis dans le milieu de l'obtention d'un nouvel ordinateur mis en place. 😐 Mais d'après ce que je me souviens qu'il ressemblerait à quelque chose comme ceci:
Ensuite dans la grille, vous définissez vos lignes et de colonnes, et de mettre l'un de ces, dans chaque cellule, ou juste en bas de chaque ligne:
J'ai peut-être répondre à une question différente, mais c'est la façon dont nous présentons nos formes.
OriginalL'auteur dex3703
J'ai eu le même problème, la réorganisation des contrôles dans une Grille de mise en page est une vraie douleur.
J'ai donc écrit un panneau personnalisé qui ne "formulaire de présentation" (groupes de deux colonnes, toutes les étiquettes de la même taille, tous de même taille,tout aligné, etc.), c'est sur mon blog: http://www.nbdtech.com/Blog/archive/2010/07/27/easy-form-layout-in-wpf-part-1-ndash-introducing-formpanel.aspx
OriginalL'auteur Nir
Je suis tombé sur ce post aujourd'hui, tout en ayant la même question en utilisant les réponses dans ce thread, je suis venu avec une gérable solution simple texte/texte paires. Pour ajouter de nouveaux champs de simplement étendre la "FormItems" de la collection.
xmlns:c="clr-namespace:Système.Collections;assembly=mscorlib"
Il n'y a eu aucune considération pour les marges et padding, ça montre juste le concept de l'utilisation d'un DataTemplate pour réutiliser la mise en page de chaque article. Il peut être adapté pour inclure d'autres types de données et des contrôles assez facilement. Vous pourriez même utiliser le ItemTemplateSelector pour sélectionner un autre modèle basé sur le type de la DictionaryEntry.Valeur
MODIFIER
Une autre approche que j'ai trouvé qu'il est plus facile pour la liaison de données est d'utiliser Visual Studio pour créer un nouveau WPF "commande Personnalisée". Cela créera un nouveau fichier nommé Thèmes/Generic.xaml avec une nouvelle mise en page par défaut qui y sont définies. Quelques simples modifications et nous pouvons utiliser la ItemsControl pour afficher notre nouveau contrôle.
Nouvelle classe:
Thèmes/Generic.xaml:
Exemple d'utilisation:
OriginalL'auteur SilverX