這節我們要布局index.xaml界面。
首先,我們定義一下全局的寬和高:1000*620[數字差不多就行了]
一堆代碼,都是自動生成的,隻是改了兩個數字,不說大夥也知道改啥數字了。

<usercontrol x:class="newchessproject.index"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:ignorable="d"
d:designheight="620" d:designwidth="1000">
<grid x:name="layoutroot" background="white">
</grid>
</usercontrol>

接着我們要分塊了,如果看過主界面就知道分幾塊了,如下圖:
共有五個區,每個區我都弄成一個使用者控件,然後往裡加載。
怎麼個加載?建立幾個使用者控件,然後往裡拖?拖過了,好像不太行。
于是,不知從哪看到這麼一種方法來加載:
a:拖一個border控件到界面去
b:背景寫上這兩句代碼:
控件a chesscontrol = new 控件a();
chessboard.child=chesscontrol;
通過這種方式能動态加載使用者控件,有點asp.net裡的literal控件。
好了,是以目前我們要往界面裡預備好幾個border控件,然後起好名稱:
先來一個下棋區的吧,放完之後界面是一片空白的,不要着急先:
<border borderbrush="silver" borderthickness="1" height="544" horizontalalignment="left" margin="10,10,0,0" name="chessboard" verticalalignment="top" width="522"></border>
然後我們建立一個一區的下棋控件:
添加控件大夥都會了吧:對着項目右鍵-》添加—》建立項->使用者控件->輸入名稱:chess.xaml
好了,我們回到index.xaml.cs背景去,把添加控件的代碼寫進去:

public partial class index : usercontrol
{
public index()
{
initializecomponent();
chess chesscontrol=new chess();//執行個體化控件
chessboard.child = chesscontrol;//加載控件
}
}

如果你想看效果,你就運作了,不過結果也是一片空白的,因為建立的使用者控件啥也沒有?接下來讓它有-》棋
進入chess.xaml,我們把grid删除,換成cavans:
<canvas background="white" height="300" horizontalalignment="left" margin="0,0,0,0" name="canvasroot" verticalalignment="top" width="400" >
</canvas>
這裡的寬和高我們先不急着改,因為我們背景根據棋盤的大小來設定
寫到這裡部落格園挂了15:21分,也許是這邊挂了,但qq還正常着,網易也能上):

public chess()
chessnewinstance.chess chess = new chessnewinstance.chess(canvasroot);
chess.initboard();
chess.initchessman();
canvasroot.width = chess.board.width;
canvasroot.height = chess.board.height;

上面代碼看着很熟悉吧,以前經常示例用來顯示棋盤和棋子的,最後兩行就是設定寬和高了。
現在可以f5運作了:登陸->進入房間->主界面:一個棋盤出來了(這裡就不上圖檔了,部落格園通路不了)
好,這節簡單點到這裡了,下節我們布局下一個區線上使用者區[沒按圖的順序來的,哪個簡單先來哪個了]。
版權聲明:本文原創發表于部落格園,作者為路過秋天,原文連結:
http://www.cnblogs.com/cyq1162/archive/2010/07/23/1783513.html