Элемент управления ListPicker в Windows Phone 7 не открывает окно полного выбора

Вот как выглядит в простое:

введите здесь описание изображения

И вот он, когда я нажимаю на него, когда он должен открывать полноэкранный режим выбора (согласно тому, что я читал):

введите здесь описание изображения

Как видите, полноэкранный режим выбора не открывается.

Вот мой XAML:

<phone:PhoneApplicationPage 
    x:Class="GameLense.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible="True">

    <Grid>
        <Grid.Resources>
            <DataTemplate x:Name="PickerItemTemplate">
                <StackPanel Orientation="Horizontal">
                    <Border Background="Transparent" Width="34" Height="34">
                        <Image Source="{Binding ImagePath}" Margin="12 0 0 0" 
                               VerticalAlignment="Center" 
                               HorizontalAlignment="Center" 
                               Stretch="Fill"/>
                    </Border>
                    <TextBlock Text="{Binding Name}" Margin="12 0 0 0"/>
                </StackPanel>
            </DataTemplate>
            <DataTemplate x:Name="PickerFullModeItemTemplate">
                <StackPanel Orientation="Horizontal">
                    <Border Background="Gold" Width="34" Height="34">
                        <Image Source="{Binding ImagePath}" Margin="12 0 0 0" VerticalAlignment="Center" HorizontalAlignment="Center" />
                    </Border>
                    <TextBlock Text="{Binding Name}" Margin="12 0 0 0"/>
                </StackPanel>
            </DataTemplate>
        </Grid.Resources>

        <Grid.RowDefinitions>
            <RowDefinition Height="100" />
            <RowDefinition />
        </Grid.RowDefinitions>

        <!--Begin Top Bar -->
        <Image Grid.Row="0" Source="Images/topbarBg.png" Stretch="Fill" />
        <TextBlock Text="Console" HorizontalAlignment="Left" 
                   VerticalAlignment="Center" FontSize="35" 
                   Padding="10"/>

        <toolkit:ListPicker x:Name="lstPlatform" 
                            ListPickerMode="Full"
                            Grid.Row="0" CacheMode="BitmapCache"
                            Margin="160 0 10 0" VerticalAlignment="Center"
                            ItemTemplate="{StaticResource PickerItemTemplate}" 
                            FullModeItemTemplate="{StaticResource PickerFullModeItemTemplate}" />

        <!--End Top Bar -->

    </Grid>

</phone:PhoneApplicationPage>

Любые идеи о том, что я могу делать неправильно?


person Only Bolivian Here    schedule 25.05.2011    source источник


Ответы (3)


Вы установили ItemCountThreshold="0" в элементе управления ListPicker, чтобы сразу перейти в полноэкранный режим выбора.

person Jeffrey R. E. Morgan    schedule 25.05.2011

Вы также можете установить ExpansionMode="FullScreenOnly" в списке, чтобы исправить это.

person Rakesh    schedule 05.12.2011

Элемент управления будет содержаться в Grid.Row и будет соответствовать его ограничениям по размеру. При этом он не будет пересекать границу второго ряда. Вам нужно либо иметь его внутри другого Grid.Row, который имеет большую высоту, либо открывать его во всплывающем окне.

person Den Delimarsky    schedule 25.05.2011
comment
Нет, это было не так. Похоже, что элемент управления имеет свойство зависимости ItemCountThreshold, к которому он может получить доступ, и как только он превысит это максимальное значение, он перейдет в полный режим. Решение состояло в том, чтобы установить для этого свойства значение 0, чтобы оно автоматически расширялось. Надеюсь, это поможет кому-то. :) - person Only Bolivian Here; 25.05.2011
comment
У меня была та же проблема, и, как сказал Ден, размер Grid.Row ограничивал расширение ListPicker. - person GoldenAxe; 01.08.2013