程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> .NET開發Silverlight程序:界面和對象模型。

.NET開發Silverlight程序:界面和對象模型。

編輯:.NET實例教程

var alimama_pid="mm_10096109_566393_892186"; var alimama_titlecolor="0000FF"; var alimama_descolor ="000000"; var alimama_bgcolor="FFFFFF"; var alimama_bordercolor="E6E6E6"; var alimama_linkcolor="008000"; var alimama_bottomcolor="FFFFFF"; var alimama_anglesize="0"; var alimama_bgpic="0"; var alimama_icon="0"; var alimama_sizecode="11"; var alimama_width=760; var alimama_height=90; var alimama_type=2;


一個不錯的博客,東東還多些!http://onlyzq.cnblogs.com

  Silverlight是用XAML語言來描述界面的。XAML是eXtensible Application Markup Language的縮寫,也就是可擴展的應用程序標記語言。在WPF(Windows Presentation Foundation)中,第一次出現了XAML,用來描述.Net語言。而Silverlight中的XAML只用來對用戶界面作出統一的描述,彌補Html/CSS等在界面定制上的不足,並使開發人員和設計人員可以運用同一種語言進行交流,減少額外的工作量。因此,Silverlight XAML的語法相對WPF中的XAML相對要簡單一些,也更容易上手。

  雖然我們可以使用Microsoft Expression Studio的視覺化方式設計界面,但是了解XAML的基本語法可以幫助我們更好的定制自己的界面。如果想要直接編寫XAML,使用Visual Studio 2008則可以提高編寫的效率,因為裡面有自動感應功能(Intellisense)。

  Canvas容器和各種元素

  任何Silverlight應用程序的界面描述都是以一個叫Canvas(畫布)的容器為根開始的。當我們在Microsoft Expression Blend或者Visual Studio 2008中創建一個新的Silverlight項目後,總會生成一個只包含根Canvas的.xaml文件,如下所示:

以下是引用片段:
   
 <Canvas x:Name="parentCanvas"
XMLns="http://schemas.microsoft.com/clIEnt/2007" 
XMLns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Loaded="Page_Loaded" 
x:Class="SilverlightTestProject.Page;assembly=ClIEntBin/SilverlightTestProject.dll"
Width="640"
Height="480"
Background="White">
</Canvas>  
  

  任何元素都必須添加在這個根Canvas容器的裡面,因為一個界面裡只能有一個這樣的根Canvas容器。我們可以在這個根容器裡加入子容器或者其他元素。每個元素都有一個標簽相對應。比如在子容器中添加一個矩形,並在根容器中添加一個橢圓形:

以下是引用片段:
   
 <Canvas x:Name="parentCanvas"
XMLns="http://schemas.microsoft.com/clIEnt/2007" 
XMLns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Loaded="Page_Loaded" 
x:Class="SilverlightTestProject.Page;assembly=ClIEntBin/SilverlightTestProject.dll"
Width="640"
Height="480"
Background="White">

    <Canvas>
        <Rectangle></Rectangle>
    </Canvas>

    <Ellipse></Ellipse>

</Canvas>

  Silverlight定義的常見的幾何圖形包括矩形,橢圓,直線 ,多邊形 ,多叉線 (不封閉的折線),路徑 (可以畫出任意的形狀和線條,比如不封閉的曲線等等。允許我們定制顯示在界面上的文字。

  附加元素屬性

  嘗試以上代碼,可以發覺我們其實看不到任何我們想要的性狀,因為它們的默認的大小屬性均為0。可見,僅使用這些元素標簽還不足以得到我們想要得形狀,我們需要在標簽中設置它的屬性值,確定它的大小、位置等等。

  觀察根Canvas,我們已經可以了解到一些屬性的定制,比如只在根節點出現的定義xml名字空間(xmlns)以及自定義的xml名字空間(XMLns:x)。其中還有一些常用的屬性,如寬(Width),高(Height)。在Canvas中,這兩個屬性既可以用像素值來表示,也可以用百分比來表示。x:Name表示該元素示例的名稱,有了這個名稱,我們就可以在.Net代碼中操作這個元素示例。Background屬性設置了背景的顏色,不設置這個值,則該元素透明。

  每個元素都有屬於自己的一組屬性。比如,我們可以將剛才的代碼改進一下:

以下是引用片段:

<Canvas x:Name="parentCanvas"
XMLns="http://schemas.microsoft.com/clIEnt/2007" 
XMLns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Loaded="Page_Loaded" 
x:Class="SilverlightTestProject.Page;assembly=ClIEntBin/SilverlightTestProject.dll"
Width="640"
Height="480"
Background="White">
    
    <Canvas x:Name="subCanvas" Canvas.Left="123" Canvas.Top="117" Width="53" Height="39">
    <Ellipse Fill="Yellow" Height="100" Width="200" StrokeThickness="2" Stroke="Black"/>
</Canvas>
<Rectangle x:Name="myRect" Canvas.Top="20" Canvas.Left="20" Width="100" Height="100" Fill="Blue" Stroke="Red" StrokeThickness="3" />

</Canvas>    

  則可以看到以下效果:

  

通過屬性定制元素

  其中Fill指定了填充色,Stroke和StrokeThickness定制了形狀的輪廓線條的顏色和粗細。我們可以看到根Canvas下的子元素(包括子容器Canvas)的位置屬性均表示相對上一級Canvas的坐標位置。值得注意的是這裡雖然矩形myRect超出了subCanvas定義的邊界范圍,但它並不會被subCanvas剪裁,且仍屬於subCanvas中的元素。

  順便一提,目前我們只有Canvas一種容器,在不久的將來,Silverlight將會提供更多的容器,使布局管理更方便。

  對象模型

  在WPF中,XAML是.NET代碼的XML表現形式;而在Silverlight中,我們同樣有與XAML相對應的.NET語言編程方式。其中,每一個元素對應一個對象,元素屬性在其.Net對象中都有對應的屬性。例如先前一個例子中的矩形就可以用以下C#語言來表示:

以下是引用片段:
 Rectangle myRect = new Rectangle();
myRect .SetValue(Canvas.TopProperty, 117
);
myRect .SetValue(Canvas.LeFTProperty, 123
);

myRect .Width = 100
;
myRect .Height = 100
;

SolidColorBrush brushBlue = new
 SolidColorBrush();
brushBlue.Color =
 Colors.Blue;
myRect .Fill =
 brushBlue;

SolidColorBrush brushRed = new
 SolidColorBrush();
brushRed.Color =
 Colors.Red;
myRect .Stroke =
 brushRed;

myRect .StrokeThickness = 3;

  這裡SolidColorBrush對象派生自Brush,是畫刷的一種。Silverlight裡定義了好幾種不同的畫刷對圖形進行填充。屬性Fill的默認畫刷是SolidColorBrush,因此可以在.xaml文件中可以直接給Fill屬性賦值,但在.Net語言中則必須明確指出畫刷的類型。有關畫刷的具體內容我們會在以後介紹。

  剛才用C#定義出來的矩形還是獨立的,如果要把它在界面上表示出來,則需要在其後加上下面這句代碼將矩形加入上一級Canvas中:

以下是引用片段:
Children.Add(myRect);


google_ad_clIEnt = "pub-6430022987645146";google_ad_slot = "3278368258";google_ad_width = 728;google_ad_height = 90;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved