wp 用户控件(UseControl)

来源:互联网 发布:人工智能的能力 编辑:程序博客网 时间:2024/04/29 00:45

学习移动应用开发,控件的运用是必不可少的。但是即使是使用例如Silverl Toolkit,Coding4Fun等工具包,也很难找到完全符合应用程序需要的控件类型。这时就需要开发者自定义控件,vs 提供用户控件(UseControl)为开发者提供了自定义控件的模版。

接下来就为大家简单介绍一下用户控件(UseControl)的使用。

首先:建立一个Windows Phone应用程序,命名为UseControlExample;如图:



现在:添加一个UseControl,在右边的解决方案管理器,在UseControlExample上右键,添加新建项。添加一个Windows Phone 用户控件,命名为CardTemplate,点击添加。如图:


在 CardTemplate.xaml。里面的 name 为 LayoutRoot 的 grid 里面添加两个 TextBlock,一个 Image。具体代码如下:

   <Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Image x:Name="PhotoImg" Margin="12,12,12,12" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" HorizontalAlignment="Left"
               VerticalAlignment="Center"/>
        <TextBlock x:Name="name" Text="张三" FontSize="44" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        <TextBlock x:Name="data" Text="IT程序员" FontSize="24" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Grid>

现在设计视图如下:



我们需要从外部给这个 UserControl的Textblock或者Image的属性赋值,那么需要给 CardTemplate 这个类添加成员变量来控制Textblock 或者 Image 的属性。

转到CardTemplate.xaml.cs页面,常规的方法在CardTemplate.xaml代码页面,右键,查看代码,就ok了,这里向大家介绍一个快捷键(F7)。

在 CardTemplate.xaml.cs 页面,在 CardTemplate 类中添加如下的成员。

   /// <summary>
        /// 定义 Image 的 Source 属性。这样这个用户控件就能从外面访问到这个 Image 控件的 Source 属性
        /// </summary>
        private string _imageUri;


        public string ImageUri
        {
            get { return _imageUri; }
            set
            {
                _imageUri = value;
                BitmapImage bmp = new BitmapImage(new Uri(value, UriKind.Relative));
                PhotoImg.Source = bmp;
            }
        }
        /// <summary>
        /// 定义了 TextBlock 的 Text 属性。外头就可以给这个 Text 属性赋值
        /// </summary>
        private string _name;


        public string Name1
        {
            get { return _name; }
            set
            {
                _name = value;
                name.Text = value;
            }
        }


        private string _data;


        public string Data
        {
            get { return _data; }
            set
            {
                _data = value;
                data.Text = value;
            }
        }

现在一个名片的用户控件就已经定义好了。


现在跳转到MainPgae.xaml页面,添加命名空间


    xmlns:my="clr-namespace:UseControlExample"




现在就可以在MianPage.xaml页面中添加自定义的CardTemplate控件了。

如果正确添加命名空间,会有如下提示:



填写下面代码:

      <my:CardTemplate Width="400" Height="200" Name1="蒋继发" Data="wp 学生开发者" 
                             ImageUri="Images/butterfly.png"/>

点击F5,运行,可以看到下面效果:



以上就是用户控件(UseControl)使用案例。

这是我第一次写wp 开发相关案例的博客如果有什么不好的地方,请见谅。谢谢。。。






原创粉丝点击