天天看点

Windows Phone 8.1 新特性 - 控件之FlipView

本篇为大家介绍 Windows Phone 8.1 中新增的 FlipView 控件,它的中文名字叫做:翻转视图。

虽然听起来有点拗口,但是它的用途大家一定不会陌生。在 Windows Phone 8 中,我们经常会为应用首次启动时加一个引导页,几张引导图片滑动来显示,最后点击确定进入应用。我们会为它写一个控件来实现,而FlipView 可以轻松的完成这一功能。FlipView不止可以作为图片浏览控件,同时还可以作为文本切换,步骤切换等等。下面我们先来看一个简单的例子:

<FlipView>
    <TextBlock Text="1" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="200"/>
    <TextBlock Text="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="200"/>
    <TextBlock Text="3" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="200"/>
</FlipView>      

我们给FlipView添加了三个元素,分别是1,2 和 3。来看看运行效果:

Windows Phone 8.1 新特性 - 控件之FlipView
Windows Phone 8.1 新特性 - 控件之FlipView
Windows Phone 8.1 新特性 - 控件之FlipView

如上图中,我们通过水平滑动来显示1,2 和 3,但是不能循环显示,也就是说不能从1向右滑动显示3,或者从3向左滑动显示1。

与其他集合类控件相似,FlipView 支持直接添加元素集合或者将 ItemsSource 绑定到数据源来添加元素。下面我们分别来演示这两种方式:

(1) 直接添加元素集合

<FlipView SelectedIndex="0">
    <TextBlock Text="TextBlock" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="70"/>
    <Image Source="Assets/setting.png" Width="100"/>
    <Border Background="Green" Width="200" Height="200"/>
</FlipView>      

我们添加了三个不同类型的元素。同时我们可以通过修改 SelectedIndex 属性来决定初始显示的元素。来看看运行效果:

Windows Phone 8.1 新特性 - 控件之FlipView
Windows Phone 8.1 新特性 - 控件之FlipView
Windows Phone 8.1 新特性 - 控件之FlipView

(2) 通过ItemsSource属性绑定

<FlipView x:Name="demoFlipView">
    <FlipView.ItemTemplate>
        <DataTemplate>
            <Grid Background="YellowGreen">
                <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding DemoContent}" FontSize="60"/>
            </Grid>
        </DataTemplate>
    </FlipView.ItemTemplate>
    <FlipView.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel Orientation="Vertical"/>
        </ItemsPanelTemplate>
    </FlipView.ItemsPanel>
</FlipView>      

我们为 FlipView 指定了 ItemTemplate 和 ItemsPanel。其中 ItemsPanel 为纵向排列的 StackPanel,这样我们就可以通过上下滑动的方式来显示元素了。来看看后台代码中的数据绑定:

protected override async void OnNavigatedTo(NavigationEventArgs e)
{
    List<Demo> demoList = new List<Demo>();
    demoList.Add(new Demo() { DemoContent = "First Item"});
    demoList.Add(new Demo() { DemoContent = "Second Item" });
    demoList.Add(new Demo() { DemoContent = "Last Item" });
    demoFlipView.ItemsSource = demoList;
}      
public class Demo
{
    public string DemoContent { get; set; }
}      

绑定代码很简单,这里不做过多说明,来看看运行效果:

Windows Phone 8.1 新特性 - 控件之FlipView
Windows Phone 8.1 新特性 - 控件之FlipView
Windows Phone 8.1 新特性 - 控件之FlipView

上图中,三个元素通过上下滑动的方式显示出来。同样,我们可以利用代码来控制 FlipView 显示哪个元素。比如一个自动浏览的相册,每隔几秒变换一张图片,到最后一张后,重新再来。来看看代码实现:

DispatcherTimer _timer = new DispatcherTimer();
_timer.Interval = TimeSpan.FromSeconds(1.0);
_timer.Tick += ((sender, e) =>
{
    if (demoFlipView.SelectedIndex < demoFlipView.Items.Count - 1)
        demoFlipView.SelectedIndex++;
    else
        demoFlipView.SelectedIndex = 0;
});
_timer.Start();      

如上的代码即可实现 FlipView 的自动切换效果,这里我们不需截图说明了。

好了,到这里我们就把 FlipView 的基本应用介绍完了,希望对大家有帮助,谢谢。

继续阅读