2010-12-07 10 views
5

existe algún estándar para la notación de controles de interfaz de usuario en WPF. Algo así como la notación húngara.¿Existe una convención de nomenclatura estándar para los controles de interfaz de usuario de WPF?

Por ejemplo

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

¿Qué tipo de notación se utilizan?

Y mi segunda pregunta es acerca de la secuencia, las propiedades de la organización en el elemento.

ejemplo Fot tengo esto:

<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"> 

o

<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 cuadro de lista que tengo propiedades, tales como nombre, ItemSource, SelectedItem y som Eventos. Lo que es apropiado para su organización. El primero debería ser el nombre del control de UI, luego los eventos y finalmente las propiedades de estilo.

+1

Posible duplicado: http: // stackoverflow.com/questions/1743467/wpf-ui-element-naming-conventions –

Respuesta

4

1) Control de naming

mensaje sugerido por Cody gris debe ser suficiente WPF UI element naming conventions

2) Evento nombrar

Yo prefiero usar la misma convención como Visual Studio "< ControlName> _ < eventName > ". Cuando ingresas el nombre del evento y presionas la tecla TAB, genera un método para ti. No veo ninguna razón para perder tiempo en el cambio de nombre, que no sea utilizarlo en varios controles; en tal caso, le gustaría proporcionar un nombre descriptivo genérico para el controlador.

3) Atributos fin

mina es: nombre (si existe), eventos pasados. Todos los demás atributos se deben agrupar por su impacto: aspecto relacionado (fondo, primer plano, opacidad, etc.), relacionado con el diseño (alto, ancho, alineaciones), etc. No debe tener "ancho" en la parte superior de la lista de atributos y " altura "alguna estaba en la parte inferior.

+1

Buena respuesta. Solo agregaría que lo más importante es mantener la coherencia en el estilo de convención y codificación de nombres. Hace que el mantenimiento sea mucho más fácil, especialmente si es otra persona que mira su código. Por supuesto, esto también se aplica al código subyacente. –

+0

@Wonko the Sane: estoy de acuerdo, eso es lo más importante –

+0

Si los manejadores de eventos se nombran así, y usted nombra un manejador de eventos después de un campo que comienza con minúsculas, ¿eso no viola la regla sobre métodos de capitalización? –

2

Creo que en su mayoría esto es una cuestión de preferencias personales por lo que muchas personas pueden estar en desacuerdo conmigo aquí. Solo respondiendo cómo hago esto.

Para su primera cuestión
tuvimos una larga discusión en curso sobre esto en mi antigua empresa y finalmente decidimos ir con carcasa de camello termina con el tipo de control y sin abreviaturas. Así que en tu caso

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

Esto es para asegurarse de que no estándar, pero lo uso todo el tiempo

Para su segunda pregunta
Creo que una buena forma de hacerlo es colocar la propiedad Name en primer lugar, a continuación, propiedades adjuntas (como Grid.Row, Grid.Column, etc.) y luego el Estilo. Después de ese grupo por categorías, como diseño, visibilidad, etc. Los eventos deberían ser los últimos. Ejemplo

<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

¿Cuál es el propósito del prefijo 'c_'? ¿Qué problema está resolviendo? –

+0

Estoy de acuerdo con la parte 2, pero ¿no es el uso de c_ y el tipo de control redundante? ¿Y no se nombrará todo en el XAML c_something, que también es redundante? También es un poco confuso, porque c_ también podría significar, para alguien nuevo, "constante". –

+0

Como dije en la respuesta, es una cuestión de preferencias personales. De todos modos, parecía que estaba en inferioridad numérica aquí, así que eliminé esa parte de la respuesta :) –

Cuestiones relacionadas