J'ai une forme simple avec quelques champs. J'ai donc décidé d'ajouter quelques DataField avec des zones de texte et des étiquettes. Les étiquettes gérables et leur longueur peuvent être changées et j'ai besoin de placer mes boîtes de texte à la même distance du côté gauche. Comment puis-je faire cette chose?Alignement du contenu des champs de données Silverlight
3
A
Répondre
2
Essayez le réglage
tk:DataField.IsFieldGroup="True"
où tk est l'espace de noms de la boîte à outils pour le DataField; sur le conteneur parent de toutes les étiquettes de champs, vous voulez avoir la même largeur.
comme
<Grid tk:DataField.IsFieldGroup="True">...
Cela fera les étiquettes de la même largeur que la plus longue étiquette dans le FieldGroup.
1
Vous pouvez utiliser une grille
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label Content="Label" Grid.Row="0" Grid.Column="0"/>
<TextBox Grid.Row="0" Grid.Column="1"/>
<Label Content="Long Label" Grid.Row="1" Grid.Column="0"/>
<TextBox Grid.Row="1" Grid.Column="1"/>
0
j'ai décidé d'ajouter le contrôle avec logique suivant:
void MyControl_LayoutUpdated(object sender, EventArgs e)
{
if (this.columnSeparator.ActualWidth!=0&&this.columnSeparator.ActualWidth != this.columnSeparator.MinWidth)
{
this.IsLoaded = true;
SetWidth();
}
}
private void SetWidth()
{
if (IsWidthSet)
return;
if (!this.IsLoaded)
return;
var parentPanel = this.Parent as Panel;
if (parentPanel != null)
{
var textFields = parentPanel.Children.Where(p => p is BpTextField).Cast<BpTextField>().ToList();
double max = this.LabelWidth;
foreach (var textField in textFields)
{
max = Math.Max(max, textField.LabelWidth);
if (!textField.IsLoaded)
return;
}
foreach (var textField in textFields)
{
textField.LabelWidth = max;
}
this.LabelWidth = max;
}
}
public bool IsLoaded { get; set; }
public bool IsWidthSet { get; set; }
Maintenant, toutes les étiquettes alignées et bien.
Questions connexes
- 1. Alignement des champs dans VerticalFieldManager
- 2. Alignement du widget et du contenu
- 3. Alignement des zones de texte dans Silverlight
- 4. Alignement du contenu d'un div tout en conservant la direction du texte dans les champs d'entrée
- 5. Alignement vertical du contenu de la ligne DataGrid
- 6. alignement vertical pour les champs de texte
- 7. Blackberry Alignement de champs dans un VerticalFieldManager
- 8. Silverlight problèmes de fixation du contenu des étiquettes
- 9. Tri et alignement du contenu d'un fichier texte en Python
- 10. outil interface utilisateur Blackberry barre: champs alignement
- 11. Formatage du contenu d'une grille de données
- 12. Silverlight Validation - Champs facultatifs
- 13. Silverlight DataGrid En-tête Alignement horizontal
- 14. alignement des données et problèmes d'héritage
- 15. Alignement des données avec la programmation réseau
- 16. Alignement du texte de la grille de données
- 17. jquery Alignement du texte et des icônes
- 18. Rendu du contenu HTML dans l'application Silverlight
- 19. alignement vertical du float: left
- 20. Affichage du contenu PDF au sein de Silverlight
- 21. Possibilité de recherche du contenu complet du site Web Silverlight
- 22. Expression régulière pour insérer des guillemets autour du contenu de 2e et 3e champs de données séparées par des virgules
- 23. Contenu du contrôle personnalisé Silverlight dans scrollviewer
- 24. Silverlight Défilement Contenu Problème
- 25. Puis-je imprimer du contenu dans Silverlight?
- 26. Staff Alignement des algorithmes
- 27. Champs d'annotation de données des champs UK Datetime
- 28. alignement des données de 64 bits de Windows en termes de développement du pilote
- 29. Alignement des données de pile dans Windows CE 6.0
- 30. Alignement des données et relation de zéro bits?
Simplement, vous pouvez regrouper les étiquettes avec un StackPanel (avec l'orientation verticale par défaut). Le panneau de la pile va grandir pour s'adapter au contenu. HTH –