UserControl用处:
在开发一个项目时,往往MainPanel会加载很多控件,但是控件多了不仅不美观而且维护起来相当费事。UserConrtol不仅可以自定义控件,而且还可以将一块布局的控件加载到主界面上,这样方便维护、条理清晰。添加新项 > Windows Phone用户控件即可。可以在新建的UserControl上(MainControl用户控件名称)的<Grid .....中随意定义和使用控件。
本文内容有参考博客如下:
http://blog.csdn.net/fengyun1989/article/details/7341747#reply
http://www.cnblogs.com/wangshuai/archive/2010/08/24/1807624.html
贴图如下:
<!--ContentPanel - 在此处放置其他内容-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<StackPanel Name="myStackPanel"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch">
<mycontrol:MainControl Temp="7℃~11℃" Week="星期天"
Width="300" Height="200" HorizontalAlignment="Right"
ImageUri="/MyWeatherForeCast;component/Images/sunday.jpg" />
<mycontrol:MainControl Temp="7℃~11℃" Week="星期一"
Width="300" Height="200" HorizontalAlignment="Right"
ImageUri="/MyWeatherForeCast;component/Images/cloudy.jpg" />
</StackPanel>
</Grid>
说明:
根据图片,可以知道用户自定义的MainControl控件在文件夹MyControls下,在主界面Page1使用该控件时,需要添加本项目的引用。
方法如下:
xmlns:mycontrol="clr-namespace:MyWeatherForeCast"
mycontrol是自定义的控件引用名称,MyWeatherForeCast是本程序的项目名称。
若是引用的控件在其他项目中,xmlns:mycontrol="clr-namespace:OtherProject.FileFolder;assembly=MainControl"
clr-namespace:OtherProject.FileFolder相当于路径,assembly=MainControl表示该自定义控件。
UserControl定义的成员变量如下:
private string _weekday;
public string Week
{
get {
return _weekday;
}
set {
_weekday = value;
this.weekday.Text = value;
}
}
private string _temp;
public string Temp
{
get {
return _temp;
}
set {
_temp = value;
this.temp.Text = value;
}
}
private string _imageUri;
public string ImageUri {
get{
return _imageUri;
}
set {
_imageUri = value;
BitmapImage image=new BitmapImage(new Uri(value,UriKind.Relative));
this.myimage.Source = image;
} }