随笔 - 15  文章 - 0 评论 - 39 阅读 - 20313
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

摘要: Windows Phone系列Windows Phone XNA创建简单局域网游戏 (2011.12.21)Windows Phone中的几种集合控件(2014.03.28)Windows Phone中的图形渲染处理(2014.03.29)Windows Phone自定义控件 ProgressRin... 阅读全文
posted @ 2014-04-19 17:28 艾克赛尔 阅读(170) 评论(1) 推荐(0) 编辑
  • 前言

     WP8.1对开发者的影响要远大于对用户的影响。这篇博客就来一起看看哪些WP8.0中的控件被移除或替换,这些控件的介绍在MSDN上都非常的详细,所以这里只给出一些简单的介绍,来对比8.1和8.0中的控件的差别,如果想要看控件的具体使用方法可以在MSDN上查看,之后也会给出MSDN上的链接。

  • Panorama VS Hub

     在上一篇博客中我们安装完VS2013UPDATE2RC之后,首先看到的一个变化就是Hub App。原有的Panorama控件已经不见了,Hub控件用HubSection替换掉原来的PanoramaItem,HubSection必须指定DataTemplate属性。两个控件的用法是非常类似的,需要提到的一点不同是,Hub控件如果在只有不会HubSection的情况下不会像Panorama那样可以一直朝一个方向滑,如果大于两个那就和Panorama一样了,一些属性的名称也有变化,详细信息

<Hub Header="My header">
    <HubSection Header="My sub header">
        <DataTemplate>
            <Grid />
        </DataTemplate>
    </HubSection>
    <HubSection Header="My sub header 2">
        <DataTemplate>
            <Grid />
        </DataTemplate>
    </HubSection>
</Hub>
  • LongListSelector VS SemanticZoom

    在WP8.1中除了使用LLS展示分组的列表,还可以使用SemanticZoom。SemanticZoom原是Win8中的控件,它不是列表控件但它却是非常有用的呈现列表的控件。它有两个状态,ZoomedInView和ZoomedOutView。顾名思义,使用这两个状态就可以做出LLS的效果,在ZoomedInView时使用ListView展示列表,在ZoomedOutView时使用GridView来展示分组。不光如此,SemanticZoom还可以应用在地图和地点集合的示例中,详细信息

<SemanticZoom>
    <SemanticZoom.ZoomedInView>
        <ListView/>
    </SemanticZoom.ZoomedInView>
    <SemanticZoom.ZoomedOutView>
        <GridView/>
    </SemanticZoom.ZoomedOutView>
</SemanticZoom>
  • WebBrowser VS WebView

     对于开发者来说可能仅仅是改变了名字,其实在底层做了很多工作。WebBrowser是一个真正的Browser浮在所有页面之上,带来了很多问题。但WebView是集成在XAML虚拟树中的控件,甚至可以轻松的将XAML和HTML混合在一起使用,详细信息

  • DrawingSurface and DrawingSurfaceBackgroundGrid

     在WP8.1中我们应该使用Windows8.1中的控件SwapChainPanel,详细信息

  • MultiScaleImage

     在WP8.1中这个控件被申明为不在被推荐使用。但在WP8.1中制作图片应用时这个控件依然可以使用。

  • RichTextBox is now RichTextBlock

     这个控件仅仅是改了个名字,详细信息

<RichTextBlock>
    <Paragraph>
        Some text with bold <Bold>in it</Bold>
    </Paragraph>
</RichTextBlock>
  • AutoSuggestBox

     这是一个全新的控件,Windows8.1中也没有。有很多第三方的控件也实现了自动补全的功能,这次推出一个官方的版本。推荐的内容不再仅仅是文本,可以是任何类型的控件,但出于性能问题的考虑还是要保证推荐内容的尽可能的轻量,详细信息

<AutoSuggestBox TextChanged="AutoSuggestBox_TextChanged"
    SuggestionChosen="AutoSuggestBox_SuggestionChosen" ItemsSource="{Binding Suggestions}">
    <AutoSuggestBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}"/>
        </DataTemplate>
    </AutoSuggestBox.ItemTemplate>
</AutoSuggestBox>
private void AutoSuggestBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
{
    if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput)
    {
        Suggestions.Clear();
        Suggestions.Add(sender.Text + "1");
        Suggestions.Add(sender.Text + "2");
    }
}
private void AutoSuggestBox_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args)
{
     // Add text to AutoSuggestBox
}
  • CaptureElement

     这个控件是Windows和WP共享控件,通过这个控件可以做一个摄像头的查看器,可以任意设置控件的大小,详细信息

 <CaptureElement x:Name="myCaptureElement"/> 

private MediaCapture mediaCaptureMgr = null;
private async void ShowPreview()
{
    if (mediaCaptureMgr == null)
    {
        mediaCaptureMgr = new MediaCapture();
        await mediaCaptureMgr.InitializeAsync();
 
        myCaptureElement.Source = mediaCaptureMgr;
        await mediaCaptureMgr.StartPreviewAsync();
    }
}
  • ProgressRing

    在之前介绍如何自定义控件的时候向大家推荐了一个进度环的控件,现在在WP8.1中我们可以使用Windows的原生进度环控件了,详细信息

  • 总结

   WP8.1中还有很多新的控件比如,Frame,ListView,GridView,ToggleSwitch其实用法都很简单就不一一介绍了。

 

posted @ 2014-04-19 17:26 艾克赛尔 阅读(1680) 评论(3) 推荐(2) 编辑
摘要: 前言 Windows Phone 8.1的预览版将在近期推送,WP 8.1的SDK也已经进入到RC阶段,可以从这里安装。本次更新的SDK被直接集成到了VS2013Update2里面,不再是单独的安装包。这就意味着我们要先把Windows从8升级到8.1,再把VS从2012升级到2013。又是折腾了一... 阅读全文
posted @ 2014-04-15 21:15 艾克赛尔 阅读(1834) 评论(6) 推荐(1) 编辑
摘要: 前言 应用内购买(In-App Purchase)对于开发者来说绝对是一个非常重要的功能,它提供了一个便捷的入口供用户来购买付费。在IAP盛行之前的游戏运营商一般都是通过接入第三方支付入口来收费。之前做过的一个安卓手机游戏服务器(Asp.Net),他们采用的付费方式有两种,一个是接入支付宝的接口,让用户可以通过支付宝来付费。还有一种是通过手机运营商来付费,先由用户把钱付给运营商,运营商通过你注册的服务器的API告知该用户已付费。在Windows Phone 8中就不用担心第三方付费服务器的问题了,微软为我们提供了一个付费的功能,也就是之前提到的IAP,付费的整个过程都是由微软的交易平台(Mi. 阅读全文
posted @ 2014-04-11 11:34 艾克赛尔 阅读(1453) 评论(2) 推荐(0) 编辑
摘要: 前言 Windows Phone 8中加入了钱包Wallet这个功能,这个功能非常的有意思,开发者可以通过Wallet提供的API创建获取Wallet中的商品。统一管理用户的收集优惠券、信用卡、成员资格、会员卡和一些自定义的信息。甚至可以将自己开发的应用集成到系统的Wallet中,不仅方便了用户的管理,还可以让用户直接从Wallet中得到关联的应用。这个关联的功能非常适合一些笔记类、旅行类、金融管理类的应用,比如,印象笔记、有道笔记、挖宝和携程、艺龙。Deals、Membership和Transactions 在使用Wallet的API之前,你必须要开启应用的Wallet能力,在WMAppMa 阅读全文
posted @ 2014-04-09 21:48 艾克赛尔 阅读(1624) 评论(0) 推荐(1) 编辑
摘要: 使用background thread解码图片 在Windows Phone中支持的图片格式有jpg和png,微软建议使用jpg格式的图片,因为jpg格式的图片在解码速度上要比png快。那么我们怎么来控制用后台线程来解码图片呢?看下面的代码。 var bi = new BitmapImage();bi.CreateOptions = BitmapCreateOptions.BackgroundCreation; 这两段代码都设置了BitmapImage的CreateOptions属性,这样做避免了在UI线程来对图片解码,在使用过程中BackgroundCreation确实有效地提... 阅读全文
posted @ 2014-04-07 17:25 艾克赛尔 阅读(944) 评论(4) 推荐(1) 编辑
摘要: 前言 MediaElement是Windows Phone中播放本地或者网络视频文件和音乐文件的常用控件,支持的格式可以从这里看。通过Play,Pause,Stop,Position方法或属性可以方便的控制文件的播放暂停或快进。MediaElement包含6种状态,分别是buffering、opening、playing、closed、stopped、pause。可以通过注册MediaElement的CurrentStateChanged事件来获取CurrentState来对UI做出不同的响应。需要注意的是,MediaElement在某些特定状态下对于API的调用不会立即反应。比如,当Medi 阅读全文
posted @ 2014-04-05 22:46 艾克赛尔 阅读(1387) 评论(2) 推荐(0) 编辑
摘要: 前言 Windows Phone 8 SDK中一个非常有用的特性,就是可以通过Windows Phone Runtime Component (WinPRT)使用C++代码来处理运算量大的任务。这样一来Windows Phone应用的性能会得到相应的提升,而且增加了代码的可移植性,有些使用C++写的类库也可以直接调用。WinPRT在内部封装了原生的C++代码,只暴露了用于WinRT类型的接口,从而在C#代码中方便的调用native code。WinPRT是C#代码到C++代码的中间层,调用顺序是C#->(C++/CX)->C++。C++/CX是C++代码的扩展(Visual C++ 阅读全文
posted @ 2014-04-03 15:32 艾克赛尔 阅读(1241) 评论(2) 推荐(1) 编辑
摘要: 前言 Windows Phone为开发者提供了很多原生控件,但在很多场景下我们需要对默认的功能或样式做一定的修改才能满足我们的需求,自定义控件应运而生。本文通过以自定义控件进度环(ProgressRing)为例,向大家介绍Windows Phone中如何创建和使用自定义控件。 1、控件基类 通常自定义控件继承自Control、ItemsControl、ContentControl等。 Control:代表使用ControlTemplate来定义样式的UI控件的基类。System.Object System.Windows.DependencyObject System.Windows.... 阅读全文
posted @ 2014-04-01 13:33 艾克赛尔 阅读(1349) 评论(7) 推荐(1) 编辑
摘要: 前言这篇文章主要介绍Windows Phone中XAML的渲染处理过程,你可以根据下文中所提到的内容来优化现有的XAML页面,来提高页面渲染的性能。 XAML的渲染包括以下两个阶段: 1. 光栅化(Rasterization) 光栅化是将图形的表现形式从以基于矢量(vector-based)的图形(比如:线、文字和矩形)转换成基于像素(pixel-based)的图形,从而可以使图像直接显示在屏幕上的处理过程。这个转换过程要先在内存中先为位图分配一个缓冲区,然后将以矢量图形一个像素一个像素的转换成位图,并完成蒙板和梯度值的计算。这个光栅化的过程完全是由CPU来处理的。 2. 组合(Composi 阅读全文
posted @ 2014-03-29 12:06 艾克赛尔 阅读(967) 评论(1) 推荐(0) 编辑
点击右上角即可分享
微信分享提示