日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SilverLight学习笔记--建立Silverlight自定义控件(1)--外观设计

發(fā)布時間:2025/6/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SilverLight学习笔记--建立Silverlight自定义控件(1)--外观设计 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?? Silverlight 2 以豐富且強大可靠的控件模型聞名,該模型是平臺中包括的控件和第三方控件包的基礎(chǔ)。您也可以使用此控件模型構(gòu)建自己的控件。
? 在了解如何為新平臺編寫自定義控件時,我經(jīng)常先復(fù)制一些內(nèi)置控件:按鈕和列表框等等。這些控件可能表面看起來簡單,但他們總是揭示了控件模型的關(guān)鍵功能并可以測試人們對這些功能的掌握程度。??
? 下面我們一起來一步步建立一個自定義控件MySilverButton.
1、打開VS2008,文件-新建項目-Silverlight類庫,項目名輸入為 MyDesignButton。創(chuàng)建的Silverlight類庫中默認會有一個Class1.cs,這是一個普通的C#類,與Silverlight并無關(guān)系,可以選擇保留它利用VS的重構(gòu)功能換成喜歡的名字,也可以刪掉它再重新建立一個類。總之我們的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的文件(默認控件模板 ),用于存放我們自定義控件的外觀定義。建立方法如下:在解決方案管理器中選擇此項目,鼠標(biāo)右鍵彈出菜單,添加--新建項,為此項目添加一個文件文件,默認名稱為TextFile1.txt,但我們需要把它的后綴名改為xaml,所以,其全名為 Generic.xaml。此文件內(nèi)容如下:

?

<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類的構(gòu)造函數(shù),并在其構(gòu)造函數(shù)內(nèi)部加入代碼

?

this.DefaultStyleKey?=?typeof(MySilverButton);

?

加入此代碼后,你才能在引用此控件時看到它的外觀。此時構(gòu)造函數(shù)如下

????????public?MySilverButton()
????????{
???????????????
this.DefaultStyleKey?=?typeof(MySilverButton);
????????}

?

4、下面我們先來看看初步效果,為此我們需要另建一個項目,文件-新建項目-Silverlight應(yīng)用程序。項目名為:MySLbutton,項目類型:Asp.net web應(yīng)用程序項目 。此時VS2008自動為我們搭建好必要的項目環(huán)境。內(nèi)有兩個項目,一個名為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學(xué)習(xí)筆記--建立Silverlight自定義控件(2)--事件響應(yīng)

前往:Silverlight學(xué)習(xí)筆記清單

轉(zhuǎn)載于:https://www.cnblogs.com/wsdj-ITtech/archive/2009/07/17/1525398.html

總結(jié)

以上是生活随笔為你收集整理的SilverLight学习笔记--建立Silverlight自定义控件(1)--外观设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。