Windows Phone 7 开发探索笔记8——加载XAML文件中的对象

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 14:29 点击:

 上篇文章介绍了如何在Silverlight for Windows Phone中读取XML文件,本文来看一下如何从XAML文件中读取信息。

一.准备XAML文件

    有时候我们需要加载一些来自文件,资源中的UI元素,例如保存在XAML文件中的UI元素。首先来准备一个待读取的XAML文件,我们可以通过创建一个文本文件并将其扩展名改为.xaml的方式来创建,但更好的方式是在Visual Studio中创建,方法如下:右击解决方案资源管理器中的项目选择添加新项,选择任意一个扩展名为.xaml的项均可,然后将自动生成的内容清空,添加如下的代码:

Ellipse.xaml文件中的XAML代码:

代码
<Ellipse xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         VerticalAlignment="Center"
         HorizontalAlignment="Center"
         Height="350" Width="350" >
    <Ellipse.Fill>
        <RadialGradientBrush  GradientOrigin="0.4,0.4" Center="0.4 0.4">
            <GradientStop Color="White" Offset="0"/>
            <GradientStop Color="Blue" Offset="1"/>
        </RadialGradientBrush>
    </Ellipse.Fill>
</Ellipse>
Rectangle.xaml文件中的XAML代码:

代码
<Rectangle xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         VerticalAlignment="Center"
         HorizontalAlignment="Center"
           Height="300" Width="350">
    <Rectangle.Fill>
        <LinearGradientBrush StartPoint="0 0.5" EndPoint="1 0.5">
            <GradientStop Color="Azure" Offset="0"/>
            <GradientStop Color="Red" Offset="0.5"/>
            <GradientStop Color="Orange" Offset="1"/>
        </LinearGradientBrush  >
    </Rectangle.Fill>
</Rectangle>
我分别创建了两个XAML文件,其中一个是圆形,一个是矩形,设置好它们相应的属性即可,注意要添加相应的xml名称空间(xmlns)。在Visual Studio中创建的好处是可以得到设计器的帮助,看到实时的效果,当然也可以使用Expression Blend来做。最后,要注意把Visual Studio自动创建的Code-Behind文件删掉。

二.解析XAML文件

    要解析XAML文件中的信息,需要借助于XamlReader类,它为分析XAML和创建相应的Silverlight对象树提供XAML处理器引擎。在Silverlight for Windows Phone中它只包含一个静态的Load方法,此方法用来分析一段格式良好的XAML片段并创建相应的Silverlight对象树,然后返回这个对象树的根。Load方法接受一个string类型的参数,我们可以将XAML文件中的代码直接传给它,不过在实际项目中,通常不会硬编码,所以采用与上篇文章中相同的方法,Application类的GetResourceStream方法,代码如下:

代码
        T LoadXAMLAndGetShape<T>(string url)
        {
            string xaml = string.Empty;

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Windows Phone 项目实战之我的微盘(下)
    • Windows Phone 实用开发技巧(26):对DataTemplate中的元素播放
    • Windows Phone 实用开发技巧(25):Windows Phone读取本地数据
    • Windows Phone 实用开发技巧(27):创建透明Tile
    • Windows Phone 知识锦(12月版)
    • Windows Phone实用开发技巧(31):密码加密
    • Windows Phone 项目实战之我的微盘(上)
    • WP7实例篇之土豆搜索器(2)
    • [翻译]WP7 QuickStart-第七篇-布局
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1