2010-12-07 52 views
5

il existe une certaine norme pour la notation des contrôles d'interface utilisateur dans WPF. Quelque chose comme la notation hongroise.Existe-t-il une convention de dénomination standard pour les contrôles d'interface utilisateur WPF?

Par exemple

<TextBox Name=tbNameOfTextBox/> 
<Image Name=imgOfMe/> 
<RichTextBox Name="rtbDocument"/> 

Quel genre de notation utilisez-vous?

Et ma deuxième question concerne la séquence, les propriétés d'organisation dans l'élément.

exemple Fot J'ai ceci:

<ListBox Name="friendsListBox" 
     ItemsSource="{Binding}" 
     SelectedItem="Key" 
     Style="{DynamicResource friendsListStyle}" 
     PreviewMouseRightButtonUp="ListBox_PreviewMouseRightButtonUp" 
     PreviewMouseRightButtonDown="ListBox_PreviewMouseRightButtonDown" 
     Grid.Row="2" 
     Margin="4,4,4,4" 
     MouseRightButtonDown="FriendsListBoxMouseRightButtonDown"> 

ou

<TextBox Name="TbStatus" 
      Text="{Binding Path=Message, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
      Style="{StaticResource CurveTextBox}" 
      Grid.Column="1" 
      TextWrapping="Wrap" 
      Margin="3,3,3,3" LostFocus="TbStatus_LostFocus" /> 

En listbox je propriétés telles que le nom, ItemSource, selectedItem et événements som. Ce qui est approprié à leur organisation. Le premier devrait être le nom du contrôle de l'interface utilisateur, puis les événements et enfin les propriétés de style?

+1

Copie possible: http: // stackoverflow.com/questions/1743467/wpf-ui-element-nommage-conventions –

Répondre

4

1) indique les noms de contrôle

Poster suggéré par Cody gris devrait être suffisant WPF UI element naming conventions

2) nommant l'événement

Je préfère utiliser la même convention que Visual Studio "< ControlName> _ < EventName > ". Lorsque vous tapez le nom de l'événement et cliquez sur TAB, il génère une méthode pour vous. Ne voyez aucune raison de passer du temps à le renommer, autre que de l'utiliser sur plusieurs contrôles - dans ce cas, vous voudriez fournir un nom descriptif générique pour le gestionnaire.

3) Attributs pour

mine est: nom (si elle existe), les événements derniers. Tous les autres attributs doivent être regroupés en fonction de leur impact: apparence (arrière-plan, avant-plan, opacité, etc.), mise en page (hauteur, largeur, aligments), etc. Ne pas avoir de "largeur" ​​en haut de votre liste d'attributs. hauteur "quelque part dans le fond.

+1

Bonne réponse. J'ajouterais seulement que le plus important est de rester cohérent dans votre convention de nommage et dans votre style de codage. Cela rend la maintenance beaucoup plus facile, surtout si quelqu'un d'autre regarde votre code. Bien sûr, cela s'applique également au code-behind. –

+0

@Wonko le Sane: Je suis d'accord, c'est la chose la plus importante –

+0

Si les gestionnaires d'événements sont nommés comme ça, et vous nommez un gestionnaire d'événements après un champ qui commence par des minuscules, cela ne viole-t-il pas la règle de capitaliser les méthodes? –

2

Je pense surtout que c'est une question de préférences personnelles, donc beaucoup de gens peuvent être en désaccord avec moi ici. Je réponds simplement comment je fais ça.

Pour votre première question
Nous avons eu une longue discussion en cours à ce sujet à mon ancienne société et finalement nous avons décidé d'aller avec boîtier de chameau se terminant par le type de contrôle et pas d'abréviations. Donc, dans votre cas

<TextBox Name="nameOfTextBox"/> 
<Image Name="meImage"/> 
<RichTextBox Name="documentRichTextBox"/> 

Ceci est bien sûr pas standard, mais je l'utilise tout le temps

Pour votre deuxième question
Je pense qu'une bonne façon est de placer d'abord la propriété Nom, puis propriétés attachées (comme Grid.Row, Grid.Column etc) et ensuite le style. Après ce groupe par catégories, comme la mise en page, la visibilité, etc. Les événements devraient venir en dernier. Exemple

<ListBox Name="friendsListBox" 
     Grid.Row="2" 
     Style="{DynamicResource friendsListStyle}" 
     ItemsSource="{Binding}" 
     SelectedItem="Key" 
     Margin="4,4,4,4" 
     PreviewMouseRightButtonUp="friendsListBox_PreviewMouseRightButtonUp" 
     PreviewMouseRightButtonDown="friendsListBox_PreviewMouseRightButtonDown" 
     MouseRightButtonDown="friendsListBox_MouseRightButtonDown"> 

<TextBox Name="statusTextBox" 
     Grid.Column="1" 
     Style="{StaticResource CurveTextBox}" 
     Text="{Binding Path=Message, 
         Mode=TwoWay, 
         UpdateSourceTrigger=PropertyChanged}" 
     TextWrapping="Wrap" 
     Margin="3,3,3,3" 
     LostFocus="statusTextBox_LostFocus" /> 
+0

Quel est l'objectif du préfixe 'c_'? Quel problème résout-il? –

+0

Je suis d'accord avec la partie 2, mais l'utilisation de c_ et le type de contrôle n'est-il pas redondant? Et tout dans le XAML ne sera-t-il pas nommé c_something, qui est également redondant? C'est aussi un peu confus, car c_ pourrait aussi signifier, pour quelqu'un de nouveau, "constant". –

+0

Comme je l'ai dit dans la réponse, c'est une question de préférences personnelles. Quoi qu'il en soit, je semblais être en infériorité numérique alors j'ai supprimé cette partie de la réponse :) –