|
概述
Silverlight 2 Beta 1版本發(fā)布了,無(wú)論從Runtime還是Tools都給我們帶來(lái)了很多的驚喜,如支持框架語(yǔ)言Visual Basic, Visual C#, IronRuby, IronPython,對(duì)JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步學(xué)Silverlight 2系列》文章帶您快速進(jìn)入Silverlight 2開發(fā)。
本文為系列文章第10篇,主要介紹Silverlight 2中的用戶控件使用。
創(chuàng)建用戶控件
在Silverlight 2中,我們可以根據(jù)開發(fā)自定義控件或者創(chuàng)建用戶控件,以達(dá)到控件重用的目的,添加一個(gè)新的用戶控件:
編寫用戶控件實(shí)現(xiàn)代碼:
<Grid x:Name="LayoutRoot" Background="White"> <Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Opacity="0.7" Fill="#FF8A8A8A"/> <Border CornerRadius="15" Width="400" Height="150" Background="LightPink" Opacity="0.9"> <StackPanel Orientation="Horizontal" Height="50"> <Image Source="info.png" Margin="10 0 0 0"></Image> <Button Background="Red" Width="120" Height="40" Content="OK" Margin="10 0 0 0" FontSize="18"/> <Button Background="Red" Width="120" Height="40" Content="Cancel" Margin="50 0 0 0" FontSize="18"/> </StackPanel> </Border></Grid>
在需要使用該用戶控件的頁(yè)面XAML中注冊(cè)命名空間:
使用用戶控件:
<Grid x:Name="LayoutRoot" Background="#46461F"> <uc:ConfirmBox x:Name="mybox"></uc:ConfirmBox></Grid>
整個(gè)過(guò)程就這么簡(jiǎn)單,運(yùn)行后效果如下:
為用戶控件添加屬性
簡(jiǎn)單的修改一下上面示例中的XAML文件,添加一個(gè)文本塊控件,用它來(lái)顯示文字提示信息。
<Grid x:Name="LayoutRoot" Background="White"> <Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Opacity="0.7" Fill="#FF8A8A8A"/> <Border CornerRadius="15" Width="400" Height="150" Background="LightPink" Opacity="0.9"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="60"></RowDefinition> <RowDefinition Height="90"></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> <TextBlock x:Name="message" FontSize="18" Foreground="White" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="50 20 0 0"/> <StackPanel Orientation="Horizontal" Height="50" Grid.Row="1"> <Image Source="info.png" Margin="10 0 0 0"></Image> <Button Background="Red" Width="120" Height="40" Content="OK" Margin="10 0 0 0" FontSize="18"/> <Button Background="Red" Width="120" Height="40" Content="Cancel" Margin="50 0 0 0" FontSize="18"/> </StackPanel> </Grid> </Border></Grid>
定義屬性:
public partial class ConfirmBox : UserControl{ public ConfirmBox() { InitializeComponent(); } public String Message { get { return this.message.Text; } set { this.message.Text = value; } }}
在頁(yè)面使用用戶控件的屬性,XAML編輯器能夠識(shí)別出屬性并提示:
為ConfirmBox控件的Message屬性賦值:
<Grid x:Name="LayoutRoot" Background="#46461F"> <uc:ConfirmBox x:Name="mybox" Message="使用用戶控件成功"></uc:ConfirmBox></Grid>
運(yùn)行后效果如下所示:
動(dòng)態(tài)添加用戶控件
用戶控件可以動(dòng)態(tài)的添加到頁(yè)面中,修改一下Page.xaml中的XAML代碼,放入一個(gè)Canvas作為用戶控件的容器。
<Grid x:Name="LayoutRoot" Background="#46461F"> <Canvas x:Name="ContainerCanvas"> </Canvas></Grid>
編寫添加用戶控件代碼:
private void LayoutRoot_Loaded(object sender, RoutedEventArgs e){ ConfirmBox confirmbox = new ConfirmBox(); confirmbox.Message = "動(dòng)態(tài)添加用戶控件成功!"; ContainerCanvas.Children.Add(confirmbox);}
運(yùn)行后效果如下所示,當(dāng)然我們也可以控制用戶控件顯示的位置等。
結(jié)束語(yǔ)
本文簡(jiǎn)單介紹了在Silverlight 2中使用用戶控件,包括創(chuàng)建用戶控件、添加屬性、動(dòng)態(tài)添加用戶控件等內(nèi)容,你可以從這里下載本文示例代碼。
NET技術(shù):一步一步學(xué)Silverlight :使用用戶控件,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。