Как отобразить длинный список данных в Windows Phone? - PullRequest
3 голосов
/ 21 ноября 2011

Я нуждаюсь в некотором контроле, который позволяет пролистывать большой объем данных. Это в основном справочная страница, поэтому мне нужно отображать много текстовых блоков и изображений.

Я пытался использовать список, но он не дает желаемого эффекта. Я попытался поместить текстовые блоки в каждый элемент списка, но текстовые блоки, необходимые для изменения размера, показывают полный текст. Наконец текстовые блоки вышли из области экрана !!

Просмотрщик прокрутки позволяет добавить только один текстовый блок

Может кто-нибудь сказать мне, как это сделать? Это правильный путь? Или есть какой-то другой элемент управления, который позволяет мне делать то же самое? Что делает longlistselector?

Alfah

Ответы [ 4 ]

2 голосов
/ 21 ноября 2011

Из вашего описания я не могу сказать, если вы не можете исправить свои требования с помощью стандартных элементов управления, для этого вам нужно опубликовать XAML, который у вас есть прямо сейчас.

О LongListSelector есть очень хорошая статья из двух частей об этом элементе управления на WindowsPhoneGeek.com:

Часть 1: http://www.windowsphonegeek.com/articles/wp7-longlistselector-in-depth--part1-visual-structure-and-api

Часть 2: http://www.windowsphonegeek.com/articles/wp7-longlistselector-in-depth--part2-data-binding-scenarios

Первый пост должен дать вам хороший обзор, если этот элемент управления соответствует вашим требованиям. Обратите внимание, что в codeplex появилась новая версия Windows Phone Toolkit , которая устраняет некоторые проблемы с селектором длинных списков.

1 голос
/ 22 ноября 2011

Что касается страницы справки, я часто обнаруживал, что проще всего встроить HTML-страницу в свой проект и использовать элемент управления WebBrowser для ее отображения.Для примера, смотрите эту статью:

http://msdn.microsoft.com/en-us/library/ff431811(v=VS.92).aspx

Если вы хотите избежать HTML, вы также можете попробовать новый (хотя все еще плохо документированный) RichTextBox:

http://www.windowsphonegeek.com/articles/Windows-Phone-7-Mango-First-look-at-RichTextBox-control http://msdn.microsoft.com/en-us/library/system.windows.controls.richtextbox%28v=VS.95%29.aspx

1 голос
/ 21 ноября 2011

Вам не нужно LongListSelector, что в данном случае было бы излишним.Вы должны придерживаться ListBox элемента управления, поскольку он обеспечивает автоматическую Виртуализацию .

. Чтобы правильно расположить ListBoxItems, попробуйте установить поля в ListBoxItem (или это можно сделать вСтиль ListBoxItem) и применение стилей к вашему TextBlock.

enter image description here

    <ListBox Grid.Row="1">
        <ListBoxItem Margin="{StaticResource PhoneMargin}">
            <TextBlock TextWrapping="Wrap" Text="Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc" Style="{StaticResource PhoneTextNormalStyle}"/>
        </ListBoxItem>
        <ListBoxItem Margin="{StaticResource PhoneMargin}">
            <TextBlock TextWrapping="Wrap" Text="Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum." Style="{StaticResource PhoneTextNormalStyle}"/>
        </ListBoxItem>
        <ListBoxItem Margin="{StaticResource PhoneMargin}">
            <TextBlock TextWrapping="Wrap" Text="Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum." Style="{StaticResource PhoneTextNormalStyle}"/>
        </ListBoxItem>
        <ListBoxItem Margin="{StaticResource PhoneMargin}">
            <TextBlock TextWrapping="Wrap" Text="Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc" Style="{StaticResource PhoneTextNormalStyle}"/>
        </ListBoxItem>
    </ListBox>
1 голос
/ 21 ноября 2011

Вы можете использовать средство просмотра с прокруткой, доступное с GRID, и можете добавить столько текстов, сколько хотите, пример, приведенный ниже:

<Grid Name="ansGrid" Background="Transparent" Grid.Row="3" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Visible">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="261"/>
                    <ColumnDefinition Width="195*" />
                </Grid.ColumnDefinitions>
                <TextBlock Text="Race Category" FontSize="24" Grid.Row="0" Grid.Column="0" FontWeight="SemiBold"></TextBlock>
                <TextBlock Text="Start Time" FontSize="24" Grid.Row="0" Grid.Column="1" FontWeight="SemiBold"></TextBlock>
                <TextBlock Text="any" FontSize="22" Grid.Row="1" Grid.Column="0"></TextBlock>
                <TextBlock Text="thing" FontSize="22" Grid.Row="1" Grid.Column="1"></TextBlock>
                <TextBlock Text="etc" FontSize="22" Grid.Row="2" Grid.Column="0" TextWrapping="Wrap"></TextBlock>
                <TextBlock Text="etc" FontSize="22" Grid.Row="2" Grid.Column="1"></TextBlock>
            </Grid>
...