它存在一些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控件的名称,然后是事件,最后是样式属性?
答案 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" />