显示 Windows Phone 中的国家/地区列表 8.1

Display list of countries in Windows Phone 8.1

我正在写一个WindowsPhone8.1 App (WINRT)

我想在注册页面中显示一个国家列表,用户可以从中select一个。在WindowsPhone7中,我们曾经有LongListSelector

它在 Windows Phone 8.1 (WinRT) 中的替代品是什么。

实际上,我想让用户点击这个控件,它应该以全屏模式打开。

我对 ListView、ListBox、Semanticzoom 感到困惑

我目前正在使用:

<ListView
                                              Name="UserCountry_ListPicker"
                                            FullModeHeader="Select Country:"
                                    SelectedIndex="-1" 
                                    Foreground="{StaticResource DefaultTheme_DarkBlueColor}"
                                    FontWeight="ExtraLight"  
                                    Margin="0,5,0,0"
                                    BorderBrush="{StaticResource DefaultTheme_DarkBlueColor}"
                                    BorderThickness="0.2,0.2,0.2,3"
                                    VerticalContentAlignment="Bottom"
                                    VerticalAlignment="Bottom"
                                    Background="{StaticResource DefaultTheme_TextBoxBackground_Light}" 
                                            SelectionChanged="UserCountry_ListPicker_SelectionChanged">
                                            <ListView.ItemTemplate>
                                                <DataTemplate>
                                                    <StackPanel 
                                                Orientation="Horizontal"
                                                Margin="0,0,0,0">
                                                        <Border 
                                                    Background="{StaticResource DefaultTheme_DarkBlueColor}"
                                                    Width="28" 
                                                    Height="28">
                                                            <TextBlock 
                                                        Text="{Binding CountryWithCodesGroupItem_Symbol}" 
                                                        FontSize="14" 
                                                        FontWeight="ExtraLight"
                                                        Foreground="WhiteSmoke"
                                                        HorizontalAlignment="Center" 
                                                        VerticalAlignment="Center"/>
                                                        </Border>
                                                        <TextBlock 
                                                    Text="{Binding CountryWithCodesGroupItem_Name}" 
                                                    FontWeight="ExtraLight"
                                                    Margin="12 0 0 0"
                                                    FontSize="21"/>
                                                    </StackPanel>
                                                </DataTemplate>
                                            </ListView.ItemTemplate>
                                            <ListView.FullModeItemTemplate>
                                                <DataTemplate>
                                                    <StackPanel 
                                                Orientation="Horizontal"
                                                Margin="20,5,0,5"
                                                  >
                                                        <Border 
                                                    Background="{StaticResource DefaultTheme_DarkBlueColor}"
                                                    Width="68" 
                                                    Height="68">
                                                            <TextBlock 
                                                        Text="{Binding CountryWithCodesGroupItem_Symbol}" 
                                                        FontSize="26" 
                                                        FontWeight="ExtraLight"
                                                        Foreground="WhiteSmoke"
                                                        HorizontalAlignment="Center" 
                                                        VerticalAlignment="Center"/>
                                                        </Border>
                                                        <TextBlock 
                                                    Text="{Binding CountryWithCodesGroupItem_Name}" 
                                                    FontWeight="ExtraLight"
                                                            Name="CountryNames"
                                                    Margin="12 0 0 0"
                                                            Foreground="{StaticResource DefaultTheme_DarkBlueColor}"
                                                    FontSize="26" 
                                                        VerticalAlignment="Center"/>
                                                    </StackPanel>
                                                </DataTemplate>
                                            </ListView.FullModeItemTemplate>

                                            <ListView.HeaderTemplate>
                                                <DataTemplate>
                                                    <StackPanel
                                    Orientation="Horizontal"
                                                Margin="0,0,0,-5">
                                                        <TextBlock
                                                    Name="UserCountry_Label" 
                                                     FontSize="25"
                                                   FontWeight="ExtraLight"
                                                    Foreground="{StaticResource DefaultTheme_DarkBlueColor}"
                                                    Text="Country">
                                                        </TextBlock>
                                                        <Image Source="ms-appx:///Images/Login_RegistrationPage/athteriskRedForm_01.png"
                                                        Margin="3,0,0,0">
                                                        </Image>
                                                    </StackPanel>
                                                </DataTemplate>
                                            </ListView.HeaderTemplate>
                                        </ListView>

但是它在页面上显示打开的列表。我不能在这样的页面上关闭它吗: example image

也许你会考虑使用ListPickerFlyout:

<Button Content="Choose country">
   <Button.Flyout>
      <ListPickerFlyout ItemsSource="{Binding CountryList}" Placement="Full" ItemsPicked="Items_PickedEven">
         <ListPickerFlyout.ItemTemplate>
            <DataTemplate>
               <TextBlock Text="{Binding CountryName}"/>
            </DataTemplate>
         </ListPickerFlyout.ItemTemplate>
      </ListPickerFlyout>
   </Button.Flyout>
</Button>

您可能还会想到 using general Flyout 并将其内容定义为 ListView、ListBox 或其他。

就三者的区别而言,ListView本质上类似于ListBox,但它也有一个View 属性 ListBox 不具有。 View 属性 可用于指定显示项目的预定义方式。

一个 SemanticZoom 控件通常在其中包含一个 ListView 控件,并允许您在列表数据集的两个不同视图之间切换。