vs2010 学习Silverlight学习笔记(8):使用用户控件
生活随笔
收集整理的這篇文章主要介紹了
vs2010 学习Silverlight学习笔记(8):使用用户控件
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
概要:
這個(gè)類似于封裝控件樣式。不過封裝的是整個(gè)或是多個(gè)控件罷了,然后用的時(shí)候就可以直接引用過來了。創(chuàng)建用戶控:
這個(gè)也很簡單,不過有幾個(gè)地方需要注意下。這個(gè)就不照抄了,咱們也自己寫一個(gè)。步驟:
1.在SilverlightApplication中添加SilverlightUserControl。
2.發(fā)現(xiàn)新建的是:
打開看一下,這個(gè)文件跟MainPage一樣一樣的。但是你不能把它當(dāng)做MainPage用,如果你想用的話,你要到App.xaml
中修改啟動(dòng)
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MainPage();
}
?
3.在SilverlightControl1.xaml中添加代碼
代碼
<Grid x:Name="LayoutRoot" Background="#46461F">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="賬戶"
Width="50" Height="20"></TextBlock>
<TextBox Grid.Row="0" Grid.Column="1" Width="200" Height="20"></TextBox>
<TextBlock Grid.Row="1" Grid.Column="0" Text="密碼"
Width="50" Height="20"></TextBlock>
<TextBox Grid.Row="1" Grid.Column="1" Width="200" Height="20"></TextBox>
<Button Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Content="提交"
Background="Orange" Width="200" Height="100"></Button>
</Grid>
4.在MainPage.xaml添加代碼
代碼
<UserControl x:Class="SilverlightAppDemo10.MainPage"
xmlns:myControl="clr-namespace:SilverlightAppDemo10"
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="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White">
<myControl:SilverlightControl1 x:Name="mycon"></myControl:SilverlightControl1>
</Grid>
</UserControl>
?
主要就是:
注冊(cè):xmlns:myControl="clr-namespace:SilverlightAppDemo10"
使用或引用:<myControl:SilverlightControl1 x:Name="mycon"></myControl:SilverlightControl1>
這些代碼vs會(huì)出現(xiàn)輸入提示的。。。
5.看看效果。我暈,還真難看。。。
添加用戶控件屬性:
哎,本想show一下asp.net控件開發(fā)知識(shí)的。結(jié)果沒成功,把代碼貼上了。我會(huì)繼續(xù)研究原因的,也請(qǐng)知道的朋友告訴我一下。SilverlightControl.xaml代碼: 代碼<Canvas x:Name="LayoutRoot" Background="White">
<TextBlock x:Name="txtb" Canvas.Left="20" Canvas.Top="50" Width="100" Height="20" Text=""></TextBlock>
<TextBox Canvas.Left="150" Canvas.Top="50" Width="200" Height="20"></TextBox>
</Canvas>
SilverlightControl.xaml.cs代碼:
代碼public string TextMessage
{
get
{
return this.txtb.Text!=""?this.txtb.Text:"還沒有定義屬性";
}
set
{
this.txtb.Text = value;
}
}
MainPage.xaml代碼:
<Grid x:Name="LayoutRoot" Background="White">
<myControl:SilverlightControl1 x:Name="myCon" TextMessage="沒成功啊"></myControl:SilverlightControl1>
</Grid>
?
運(yùn)行一下:
我想的是,假如沒有設(shè)置Text,就會(huì)顯示:還沒有定義屬性 ,設(shè)置后就會(huì)顯示設(shè)置的屬性。可是這個(gè)Silverlight機(jī)制我不太懂,
弄巧成拙了。
動(dòng)態(tài)添加用戶控件:
時(shí)間不夠了,先把TerryLee的貼上。回頭我再改。另外我在想既然可以動(dòng)態(tài)添加,是不是也可以動(dòng)態(tài)減去?這樣的話,頁面豈不是花樣百出了?!我會(huì)明天繼續(xù)。。
1.用戶控件可以動(dòng)態(tài)的添加到頁面中,修改一下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);
}
后記:
現(xiàn)在有兩個(gè)問題:1.動(dòng)態(tài)修改用戶控件屬性,即上面那個(gè)代碼中g(shù)et{}set{}為什么不能成功?怎樣才能成功?
2.能否動(dòng)態(tài)卸載控件?
這篇是我昨晚寫的,不過關(guān)機(jī)的時(shí)候忘記保存了。。今天重做一下,傳了上來。
今天是我生日,我出去玩了。晚上回來我會(huì)繼續(xù)研究者兩個(gè)問題。
總目錄
上一篇:vs2010 學(xué)習(xí)Silverlight學(xué)習(xí)筆記(7):控件樣式與模板
下一篇:vs2010 學(xué)習(xí)Silverlight學(xué)習(xí)筆記(9):使用用戶控件(2)
轉(zhuǎn)載于:https://www.cnblogs.com/yaoge/archive/2010/05/10/1731739.html
總結(jié)
以上是生活随笔為你收集整理的vs2010 学习Silverlight学习笔记(8):使用用户控件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库连接 未将对象引用到实例
- 下一篇: ReaderMe 1.0.0.32版发布