天天看點

Windows Phone開發之UserControl的用法

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

貼圖如下:

Windows Phone開發之UserControl的用法
Windows Phone開發之UserControl的用法
<!--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;
        } }
           

繼續閱讀