在登录界面启动时,会使用Linq技术来读取保存在config.xml文件中的MSN帐号信息,代码如下:
XElement element = XElement.Load(@"config.xml");
IEnumerable<string> myAccount = from account in element.Descendants("account") select account.Value;
txtAccount.Text = myAccount.First();
在编写完登录界面的代码后,启动程序,登录界面如图2所示。
图2 登录界面
4 列出当前MSN帐号的所有好友
在成功登录系统后,首先需要列出当前MSN帐号的联系人。在本程序中使用TreeView控件来列出联系人及其分组。在每一个联系人节点的TreeViewItem对象的Tag属性中保存了一个ItemObject对象。该对象封装了和某个好友相关的信息,如联系人信息(Contact对象)、游戏窗口的对象、用于通信的SBMessageHandler对象等。可以通过Contact对象来获得当前好友的名称、E-mail、所有组等信息。
主界面中的核心控件有两个:
(1)TreeView:用于显示联系人及联系人组信息。
(2)CheckBox:用于控制是否只显示在线联系人。
Main.xaml文件是设置主界面控件的xaml文件,代码如下:
<Window x:Class="WpfMSNGame.Main"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Main" Height="489" Width="308" Icon="images/logo.ico" ResizeMode="NoResize" Loaded="Window_Loaded" Unloaded="Window_Unloaded">
<Grid>
<!-- TreeView控件的配置代码 -->
<TreeView Margin="8,51,10,15" Name="tvContactList"
MouseDoubleClick="tvContactList_MouseDoubleClick">
</TreeView>
<!-- CheckBox控件的配置代码 -->
<CheckBox Height="16" Margin="0,23,0,0" Name="chkOnlineUser"
VerticalAlignment="Top" HorizontalAlignment="Right" Width="119"
Click="chkOnlineUser_Click" >只显示在线用户</CheckBox>
<!-- Image控件的配置代码 -->
<Image Height="34" HorizontalAlignment="Left" Margin="8,13,0,0" Name="image1" Source="images/logo.gif" Stretch="Fill" VerticalAlignment="Top" Width="37" />
</Grid>
</Window>
|