一、新建一个UserControl.xaml页面  MyUserControl.xaml

添加代码如下:

<UserControl x:Class="bodypicture.MyUserControl"
    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"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    d:DesignHeight="480" d:DesignWidth="480">

<Grid x:Name="LayoutRoot">
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="0,0,12,0">
            <Image Canvas.ZIndex="4" Name="image1"  Stretch="Fill" Width="200" Height="200" Margin="52,255,216,313">
                <Image.RenderTransform>
                    <SkewTransform AngleX="0" AngleY="0"  CenterX="0" CenterY="0"></SkewTransform>
                </Image.RenderTransform>
            </Image>
            <Image  Name="image2" Height="200" Stretch="Fill" Margin="252,256,66,312">
                <Image.RenderTransform>
                    <TransformGroup>
                        <SkewTransform AngleX="0" AngleY="-20" CenterX="0"  CenterY="0">
                        </SkewTransform>
                    </TransformGroup>
                </Image.RenderTransform>
            </Image>
            <Image   Name="image3" Source="image/3.png"  Width="210" Height="50" Stretch="Fill" Margin="187,206,71,512">
                <Image.RenderTransform>
                    <TransformGroup>
                        <SkewTransform AngleX="-70" AngleY="0" CenterX="0"  CenterY="0">
                        </SkewTransform>
                    </TransformGroup>
                </Image.RenderTransform>
            </Image>
        </Grid>
    </Grid>
</UserControl>

这样就可以在另一个页面Page1.xaml直接引用该UserContro.xaml页面了。

二、在Page1.xaml页面中。

之前,添加命名空间

  xmlns:my="clr-namespace:bodypicture"
  <!--LayoutRoot 是包含所有页面内容的根网格-->
    <Grid x:Name="LayoutRoot"  Background="LightPink">
        <toolkit:GestureService.GestureListener>
            <toolkit:GestureListener DragStarted="OnGestureListenerDragStarted"
                                         DragDelta="OnGestureListenerDragDelta"
                                         DragCompleted="OnGestureListenerDragCompleted"
                                          />
        </toolkit:GestureService.GestureListener>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <!--ContentPanel - 在此处放置其他内容-->     ////就是这一句了××××××××××××××××××××××××××××××××××××××××××××
        <my:MyUserControl></my:MyUserControl>
    </Grid>

刚开始,我在Page1.xaml.cs

添加如下代码:

MyUserControl u = new MyUserControl();
 u.image1.Source = new BitmapImage(new Uri(image_array[imgi], UriKind.Relative));
 u.image2.Source = new BitmapImage(new Uri(image_array[imgj], UriKind.Relative));

运行程序,发现图片没有显示,经过若干挣扎。。才发现,

我不能这么写:MyUserControl u = new MyUserControl();因为这相当于重新实例化了一个类MyUserControl,不再是Page1.xaml的UserControl了,这样怎么会显示数据呢?

所以,修改如下:

 <my:MyUserControl x:Name="userControl"></my:MyUserControl>

给MyUserControl命名。

然后,在Page1.xaml.cs中就可以直接使用了,不用实例化了。

userControl.image1.Source = new BitmapImage(new Uri(image_array[imgi], UriKind.Relative));
userControl.image2.Source = new BitmapImage(new Uri(image_array[imgj], UriKind.Relative));

ok,图片成功显示。

当然,也可以在MyUserControl.XAML.CS页面中,定义属性。

        private string image11;

        public string Image1
        {
            get { return image11; }
            set
            {
                image11 = value;
                BitmapImage bit1 = new BitmapImage(new Uri(image11, UriKind.Relative));
                image1.Source = bit1;
            }
        }

        private string image22;

        public string Image2
        {
            get { return image22; }
            set
            {
                image22 = value;
                image2.Source = new BitmapImage(new Uri(image22, UriKind.Relative));
            }
        } 

这样,在Page1.xaml.cs中或者Page1.xaml中都可以使用Image1、Image2属性进行设置他们的图片来源。

这就需要根据情况进行选择了。

Windows phone 之 UserControl的应用的更多相关文章

  1. [個人紀錄] windows form , usercontrol design 模式不見

    windows form 跟 usercontrol 都變成cs檔 無法點擊進入設計模式 <Compile Include="Form1.cs"/> <Compi ...

  2. silverlight ListBox 多列图片效果

    这个功能之前用wpf写过一次这次用Silverlight写一次 这两种写法上基本上没有太大的差别 这个Demo并不完美,只是给大家提供一个思路 源码:SilverLightListPricture.r ...

  3. wpf中,一个简单的自定义treeview

    首先创建一个自定义控件,在里面定义好treeview的样式,将本来的三角形的图标变为加号的图标,并且添加节点之间的连线. <UserControl x:Class="TreeViewE ...

  4. 基于WPF系统框架设计(9)-多值绑定之IMultiValueConverter

    应用场景 我想把View层的一个布局控件和功能按钮传到ViewModel层,达到动态变更布局,同时灵活获取功能按钮的属性,让View和ViewModel完全分离,而不受View层影响. 最后我想到使用 ...

  5. WPF实现软键盘

    wpf 实现一个软键盘, 先发个图: 工作有需要实现一个软键盘,本来想用windows自带的软键盘凑合凑合得了,又觉得那个软键盘太大了,所以自己实现了一个. 说一下实现的思路,其实没什么思路 界面就是 ...

  6. 用户控件的设计要点 System.Windows.Forms.UserControl

    用户控件的设计要点 最近的项目中有一个瀑布图(彩图)的功能,就是把空间和时间上的点量值以图的形式呈现出来,如下图: X坐标为空间,水平方向的一个像素代表一个空间单位(例如50米) Y坐标为时间,垂直方 ...

  7. 背水一战 Windows 10 (77) - 控件(控件基类): ContentControl, UserControl, Page

    [源码下载] 背水一战 Windows 10 (77) - 控件(控件基类): ContentControl, UserControl, Page 作者:webabcd 介绍背水一战 Windows ...

  8. Windows phone 自定义用户控件(UserControl)——ColorPicker

    编码前 学习Windows phone自定义用户控件,在<WPF编程宝典>学习的小例子.并根据windows phone稍微的不同,做了点修改.ColorPicker(颜色拾取器):拥有三 ...

  9. [Windows Phone学习笔记]UserControl的使用

    UserControl的使用 开发过程中,多个UI控件需要协同工作,相互交互之后,才可完成一个完整的业务需求,此时可把这些控件封装成为一个整体,相互之间的交互逻辑封装其中,外部调用可无需关心内部逻辑, ...

随机推荐

  1. vijosP1388 二叉树数

    vijosP1388 二叉树数 链接:https://vijos.org/p/1388 [思路] Catalan数.根据公式h=C(2n,n)/(n+1)计算.首先化简为 (n+i)/i的积(1< ...

  2. Yii简单的基于角色的访问控制

    public function filters() { return array( 'accessControl', // perform access control for CRUD operat ...

  3. 关于ASSERT(断言)的作用

    程序一般分为Debug 版本和Release 版本,Debug 版本用于内部调试,Release 版本发行给用户使用.断言assert 是仅在Debug 版本起作用的宏,它用于检查“不应该”发生的情况 ...

  4. hdoj 5494 Card Game

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5494 题意:首先一个数t代表测试样例组数  然后两个数n,m 代表数列中有n个数  从中取m个数   ...

  5. DirectShow Filter 开发典型例子分析 ——字幕叠加 (FilterTitleOverlay)1

    本文分析一下<DirectShow开发指南>中的一个典型的Transform Filter的例子:字幕叠加(FilterTitleOverlay).通过分析该例子,我们可以学习到Direc ...

  6. 一步一步制作yaffs/yaffs2根文件系统(七)---真挚地道歉以及纠正前边出现的错误!

    接上一节http://blog.csdn.net/mybelief321/article/details/10040939 说实话,我当时写这个系列的博文的时候,感觉对BusyBox算是有点了解,直到 ...

  7. AndroidHttp通信 HTTP Client与HttpURLConnection的区别

    Apache HTTP Client DefaultHttpClient 以及其相关类AndroidHttpClient 适用于 web browsers, 他们是可扩展的,并且拥有大量的稳定APIs ...

  8. Jakarta-Commons- BeanUtils学习笔记:

    http://www.cnblogs.com/zhangyi85/archive/2009/04/22/1441341.html 1.什么是BeanUtils: BeanUtils主要提供了对于Jav ...

  9. JSP版(utf8编码)的Ueditor百度文章编辑器配置以及使用说明

    二话不说,先上图: 我配置好的效果大致是这些功能:基本的文字编辑功能.图片上传功能.附件上传功能.百度/谷歌地图搜索截图.视/音频发布功能.这个插件是现今我用过觉得最舒服的编辑器,功能齐全强大,稍微修 ...

  10. MyEclipse10搭建Strust2开发环境

    一.创建一个JavaWeb项目 启动MyEclipse10    ,然后在MyEclipse中创建一个JavaWeb项目,点击[File]---->[New]---->[WebProjec ...