SilverLight学习笔记--建立Silverlight自定义控件(1)--外观设计
?? Silverlight 2 以豐富且強大可靠的控件模型聞名,該模型是平臺中包括的控件和第三方控件包的基礎。您也可以使用此控件模型構建自己的控件。
? 在了解如何為新平臺編寫自定義控件時,我經常先復制一些內置控件:按鈕和列表框等等。這些控件可能表面看起來簡單,但他們總是揭示了控件模型的關鍵功能并可以測試人們對這些功能的掌握程度。??
? 下面我們一起來一步步建立一個自定義控件MySilverButton.
1、打開VS2008,文件-新建項目-Silverlight類庫,項目名輸入為 MyDesignButton。創(chuàng)建的Silverlight類庫中默認會有一個Class1.cs,這是一個普通的C#類,與Silverlight并無關系,可以選擇保留它利用VS的重構功能換成喜歡的名字,也可以刪掉它再重新建立一個類。總之我們的Silverlight類庫中只需要保留一個我們要開發(fā)的控件名字的類就可以了。因此在此處,我們進入后把Class1.cs改名為 MySilverButton.cs,讓此類繼承自 ContentControl,代碼如下:
?
using?System;using?System.Net;
using?System.Windows;
using?System.Windows.Controls;
using?System.Windows.Documents;
using?System.Windows.Ink;
using?System.Windows.Input;
using?System.Windows.Media;
using?System.Windows.Media.Animation;
using?System.Windows.Shapes;
namespace?MyDesignButton
{
????public?class?MySilverButton:?ContentControl?
????{
????}
}
2、為此項目添加一個新文件夾,名稱為themes,因為下一步我們要在此文件夾中建立一個名為Generic.xaml的文件(默認控件模板 ),用于存放我們自定義控件的外觀定義。建立方法如下:在解決方案管理器中選擇此項目,鼠標右鍵彈出菜單,添加--新建項,為此項目添加一個文件文件,默認名稱為TextFile1.txt,但我們需要把它的后綴名改為xaml,所以,其全名為 Generic.xaml。此文件內容如下:
?
<ResourceDictionary???xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
??xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
??xmlns:custom="clr-namespace:MyDesignButton">
????<Style?TargetType="custom:MySilverButton">
????????<Setter?Property="Template">
????????????<Setter.Value>
????????????????<ControlTemplate?TargetType="custom:MySilverButton">
????????????????????<Grid?x:Name="RootElement">
????????????????????????<Rectangle?x:Name="BodyElement"?Width="200"?Height="100"???Fill="Brown"??Stroke="Purple"?RadiusX="16"?RadiusY="16"?/>
????????????????????????<TextBlock?x:Name="ButtonCaption"??HorizontalAlignment="Center"??VerticalAlignment="Center"?FontSize="26"??/>
????????????????????</Grid>
????????????????</ControlTemplate>
????????????</Setter.Value>
????????</Setter>
????</Style>
</ResourceDictionary>
?
3、添加MySilverButton類的構造函數,并在其構造函數內部加入代碼
?
this.DefaultStyleKey?=?typeof(MySilverButton);?
加入此代碼后,你才能在引用此控件時看到它的外觀。此時構造函數如下
????????{
???????????????this.DefaultStyleKey?=?typeof(MySilverButton);
????????}
?
4、下面我們先來看看初步效果,為此我們需要另建一個項目,文件-新建項目-Silverlight應用程序。項目名為:MySLbutton,項目類型:Asp.net web應用程序項目 。此時VS2008自動為我們搭建好必要的項目環(huán)境。內有兩個項目,一個名為MySLbutton.一個名為MySLbutton.Web,后者為前者的運行環(huán)境。為看到初步效果,我們需要做如下工作。
? (1)、先在MySLbutton項目中引入我們前面所建立的名為MyDesignButton的項目中所生成的MyDesignButton.dll(在此項目的bin/debug目錄下)。即我們所建立的自定義控件。
? (2)、修改MySLbutton項目的Page.xaml文件。主要是添加兩處代碼
?? ?? 一是引入xmlns定義。代碼是:?
xmlns:custom="clr-namespace:MyDesignButton;assembly=MyDesignButton"????? 二是引用我們的自定義控件。代碼是:
<custom:MySilverButton?x:Name="MyFirstSLbutton">?</custom:MySilverButton>? 修改后,完整的Page.xaml文件為:
?<UserControl?x:Class="MySLbutton.Page"????xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"?
????xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"?
????xmlns:custom="clr-namespace:MyDesignButton;assembly=MyDesignButton"
?????????????Width="400"?Height="300">
????<Grid?x:Name="LayoutRoot"?Background="White">
????????<custom:MySilverButton?x:Name="MyFirstSLbutton">
????????????
????????</custom:MySilverButton>
????</Grid>
</UserControl>
?(3)、生成項目,并按下F5運行,我們可看到初步效果。
下一篇:
SilverLight學習筆記--建立Silverlight自定義控件(2)--事件響應
轉載于:https://www.cnblogs.com/wsdj-ITtech/archive/2009/07/17/1525398.html
總結
以上是生活随笔為你收集整理的SilverLight学习笔记--建立Silverlight自定义控件(1)--外观设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Openxml: 导出excel 设置
- 下一篇: 通过Windbg查看DataTable的