Windows Phone8.1 SDK中的新控件

  • 前言

     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其实用法都很简单就不一一介绍了。

 

你可能感兴趣的:(windows phone)