• 前言

     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 on 2014-04-19 17:26  艾克赛尔  阅读(1671)  评论(3编辑  收藏  举报