天天看點

Silverlight+WCF 新手執行個體 象棋 主界面-棋盤區(二十二)

這節我們要布局index.xaml界面。

首先,我們定義一下全局的寬和高:1000*620[數字差不多就行了]

一堆代碼,都是自動生成的,隻是改了兩個數字,不說大夥也知道改啥數字了。

Silverlight+WCF 新手執行個體 象棋 主界面-棋盤區(二十二)
Silverlight+WCF 新手執行個體 象棋 主界面-棋盤區(二十二)

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

Silverlight+WCF 新手執行個體 象棋 主界面-棋盤區(二十二)

接着我們要分塊了,如果看過主界面就知道分幾塊了,如下圖:

Silverlight+WCF 新手執行個體 象棋 主界面-棋盤區(二十二)

共有五個區,每個區我都弄成一個使用者控件,然後往裡加載。

怎麼個加載?建立幾個使用者控件,然後往裡拖?拖過了,好像不太行。

于是,不知從哪看到這麼一種方法來加載:

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背景去,把添加控件的代碼寫進去:

Silverlight+WCF 新手執行個體 象棋 主界面-棋盤區(二十二)
Silverlight+WCF 新手執行個體 象棋 主界面-棋盤區(二十二)

 public partial class index : usercontrol

    {

        public index()

        {

            initializecomponent();

            chess chesscontrol=new chess();//執行個體化控件

            chessboard.child = chesscontrol;//加載控件

        }

    }

Silverlight+WCF 新手執行個體 象棋 主界面-棋盤區(二十二)

如果你想看效果,你就運作了,不過結果也是一片空白的,因為建立的使用者控件啥也沒有?接下來讓它有-》棋

進入chess.xaml,我們把grid删除,換成cavans:

Silverlight+WCF 新手執行個體 象棋 主界面-棋盤區(二十二)

<canvas background="white" height="300" horizontalalignment="left" margin="0,0,0,0" name="canvasroot" verticalalignment="top" width="400" >

    </canvas>

這裡的寬和高我們先不急着改,因為我們背景根據棋盤的大小來設定

寫到這裡部落格園挂了15:21分,也許是這邊挂了,但qq還正常着,網易也能上):

Silverlight+WCF 新手執行個體 象棋 主界面-棋盤區(二十二)
Silverlight+WCF 新手執行個體 象棋 主界面-棋盤區(二十二)

public chess()

            chessnewinstance.chess chess = new chessnewinstance.chess(canvasroot);

            chess.initboard();

            chess.initchessman();

            canvasroot.width = chess.board.width;

            canvasroot.height = chess.board.height;

Silverlight+WCF 新手執行個體 象棋 主界面-棋盤區(二十二)

上面代碼看着很熟悉吧,以前經常示例用來顯示棋盤和棋子的,最後兩行就是設定寬和高了。

現在可以f5運作了:登陸->進入房間->主界面:一個棋盤出來了(這裡就不上圖檔了,部落格園通路不了)

好,這節簡單點到這裡了,下節我們布局下一個區線上使用者區[沒按圖的順序來的,哪個簡單先來哪個了]。

版權聲明:本文原創發表于部落格園,作者為路過秋天,原文連結:

http://www.cnblogs.com/cyq1162/archive/2010/07/23/1783513.html

繼續閱讀