原文地址:http://www.cnblogs.com/limo/archive/2010/12/14/1905172.html
1,新建一个Silverlight Application,里面会有一个MainPage.xaml文件 和对应的MainPage.xaml.cs文件,随便在xaml中写点什么
例如我写了点这个,下面是MainPage.xaml全部代码
01 |
<UserControl x:Class="UserControlDemo.MainPage"
|
07 |
d:DesignHeight="300" d:DesignWidth="400">
|
09 |
<Grid x:Name="LayoutRoot" Background="White">
|
10 |
<StackPanel Height="86" HorizontalAlignment="Left" Margin="94,90,0,0" Name="stackPanel1" VerticalAlignment="Top" Width="200">
|
11 |
<TextBlock Height="36" Name="myTextBlock" Text="默认值" />
|
12 |
<Button Content="Button" Height="23" Name="myBtn" Width="75" />
|
2,在项目下 再添加一个Silverlight Page 页面 或者 Silverlight User Control 都行 ,我添加了一个Page.并且导入了一个命名空间xmlns:myUserControl="clr-namespace:UserControlDemo", 其中myUserControl是个名字可以随便写. 这样就能在这个页面中引用UserControlDemo这个命名空间中的类了.所以我在Page这页面的Grid中可以用到MainPage这个类了.
下面是Page.xaml的代码
01 |
<navigation:Page x:Class="UserControlDemo.Page1" |
02 |
xmlns:myUserControl="clr-namespace:UserControlDemo"
|
08 |
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
|
09 |
d:DesignWidth="640" d:DesignHeight="480"
|
11 |
<Grid x:Name="LayoutRoot">
|
12 |
<myUserControl:MainPage x:Name="demoUserControl" Msg="UserControlDemo"></myUserControl:MainPage>
|
这时会发现 我在用MainPage 这个类的时候 有一个Msg 属性,这个属性不是silverlight 类中的,那很显然 就是自己给MainPage 加的属性.
代码如下
01 |
namespace UserControlDemo
|
03 |
public partial class MainPage : UserControl
|
09 |
myTextBlock.Text = value;
|
13 |
return myTextBlock.Text;
|
18 |
InitializeComponent();
|
的确是咱自己加的属性,只不过这个属性的值会在MainPage.xaml的Textblock中显示.
差点忘了,最后把VS自动生成的App.xaml.cs里面的启动函数修改一下,启动页改成Page.
1 |
private void Application_Startup(object sender, StartupEventArgs e)
|
4 |
this.RootVisual = new Page1();
|
不知不觉 你就会发现 其实 这就是自定义控件的开始.