vs2010 学习Silverlight学习笔记(8):使用用户控件
生活随笔
收集整理的這篇文章主要介紹了
vs2010 学习Silverlight学习笔记(8):使用用户控件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
概要:
這個類似于封裝控件樣式。不過封裝的是整個或是多個控件罷了,然后用的時候就可以直接引用過來了。創建用戶控:
這個也很簡單,不過有幾個地方需要注意下。這個就不照抄了,咱們也自己寫一個。步驟:
1.在SilverlightApplication中添加SilverlightUserControl。
2.發現新建的是:
打開看一下,這個文件跟MainPage一樣一樣的。但是你不能把它當做MainPage用,如果你想用的話,你要到App.xaml
中修改啟動
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>
?
主要就是:
注冊:xmlns:myControl="clr-namespace:SilverlightAppDemo10"
使用或引用:<myControl:SilverlightControl1 x:Name="mycon"></myControl:SilverlightControl1>
這些代碼vs會出現輸入提示的。。。
5.看看效果。我暈,還真難看。。。
添加用戶控件屬性:
哎,本想show一下asp.net控件開發知識的。結果沒成功,把代碼貼上了。我會繼續研究原因的,也請知道的朋友告訴我一下。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>
?
運行一下:
我想的是,假如沒有設置Text,就會顯示:還沒有定義屬性 ,設置后就會顯示設置的屬性。可是這個Silverlight機制我不太懂,
弄巧成拙了。
動態添加用戶控件:
時間不夠了,先把TerryLee的貼上?;仡^我再改。另外我在想既然可以動態添加,是不是也可以動態減去?這樣的話,頁面豈不是花樣百出了?!我會明天繼續。。
1.用戶控件可以動態的添加到頁面中,修改一下Page.xaml中的XAML代碼,放入一個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 = "動態添加用戶控件成功!";
??? ContainerCanvas.Children.Add(confirmbox);
}
后記:
現在有兩個問題:1.動態修改用戶控件屬性,即上面那個代碼中get{}set{}為什么不能成功?怎樣才能成功?
2.能否動態卸載控件?
這篇是我昨晚寫的,不過關機的時候忘記保存了。。今天重做一下,傳了上來。
今天是我生日,我出去玩了。晚上回來我會繼續研究者兩個問題。
總目錄
上一篇:vs2010 學習Silverlight學習筆記(7):控件樣式與模板
下一篇:vs2010 學習Silverlight學習筆記(9):使用用戶控件(2)
轉載于:https://www.cnblogs.com/yaoge/archive/2010/05/10/1731739.html
總結
以上是生活随笔為你收集整理的vs2010 学习Silverlight学习笔记(8):使用用户控件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库连接 未将对象引用到实例
- 下一篇: ReaderMe 1.0.0.32版发布