是否有WPF UI控件的标准命名约定?

时间:2010-12-07 15:02:56

标签: .net wpf controls naming-conventions

它存在一些WPF中UI控件表示法的标准。像匈牙利符号的东西。

例如

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

你使用什么样的符号?

我的第二个问题是关于元素中的序列,组织属性。

Fot示例我有这个:

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

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

在列表框中,我有Name,ItemSource,SelectedItem和som Events等属性。 什么适合他们的组织。第一个应该是UI控件的名称,然后是事件,最后是样式属性?

2 个答案:

答案 0 :(得分:4)

1)控制命名

Cody Gray建议的帖子应该足够WPF UI element naming conventions

2)事件命名

我更喜欢使用与Visual Studio“&lt; ControlName&gt; _&lt; EventName&gt;”相同的约定。当您键入事件名称并单击TAB时,它会为您生成方法。除了在多个控件上使用它之外,没有任何理由花时间重命名它 - 在这种情况下,您需要为处理程序提供一些通用的描述性名称。

3)属性顺序

我的是:名字(如果存在),事件持续。所有其他属性应按其影响进行分组 - 外观相关(背景,前景,不透明度等),布局相关(高度,宽度,对齐)等。 不要在属性列表的顶部有“宽度”,而“高度”有些在底部。

答案 1 :(得分:2)

我认为这主要取决于个人喜好,所以很多人可能会在这里不同意我的意见。只是回答我是如何做到的。

第一个问题
在我以前的公司,我们一直在讨论这个问题,最后我们决定采用骆驼套管,以控制类型结束,没有缩写。所以在你的情况下

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

这肯定没有标准,但我一直都在使用它

关于第二个问题
我认为一个好方法是首先放置Name属性,然后放置附加属性(如Grid.Row,Grid.Column等),然后放置Style。按类别划分后,如布局,可见性等。事件应该是最后的。实施例

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