Хотите изображения как PanoramaItems в WP7? - PullRequest
0 голосов
/ 09 февраля 2011

У меня есть Panorama элемент управления, где мне нужно программно добавлять элементы, которые являются изображениями. Я хочу реализовать их так, чтобы щелкнув по изображению, скользить ко второму изображению и так далее .. Я добавил изображения в элемент Panaroma, но он всегда показывает только одно изображение.

 for (int i = 0; i < 10; i++)
 {
     image_new = new Image();
     PanoramaItem pi = new PanoramaItem();

     image_new.Source = "Some image Bitmap";
     pi.Content = image_new;

     image_panaroma.Items.Add(pi);
 }

xaml макет:

<Grid x:Name="LayoutRoot">
    <controls:Panorama Name="image_panaroma">
    </controls:Panorama>
</Grid>

Может кто-нибудь сказать мне, что не так?

Также есть ли другой способ дать скользящий переход к изображениям?

Ответы [ 2 ]

1 голос
/ 09 февраля 2011

Вы не говорите, какое исключение вы получаете, но я думаю, что лучше было бы создать ItemTemplate для элемента управления Panorama и связать его со списком объектов.

public class ItemData
{
    public string Name { get; set; }
    public string Path { get; set; }
}

...

List<ItemData> items = new List<ItemData>(10);
for (int i = 0; i < 10; i++)
{
    items.Add(new ItemData { Name = "Something", Path = "Image path" });
}

this.image_panorama.ItemsSource = items;

Ваш XAML будет выглядеть примерно так:

<controls:Panorama x:Name="image_panorama">
    <controls:Panorama.HeaderTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Name}" />
        </DataTemplate>
    </controls:Panorama.HeaderTemplate>
    <controls:Panorama.ItemTemplate>
        <DataTemplate>
            <Image Source="{Binding Path}" />
        </DataTemplate>
    </controls:Panorama.ItemTemplate>
</controls:Panorama>
0 голосов
/ 09 февраля 2011

Вы говорите, что это показывает только 1 изображение. Это одно и то же изображение 10 раз (по одному на каждый сводный элемент) или создается только 1 сводный элемент?

Если это первое, то это может быть способ создания изображения и / или настройки источника.
Ваш пример кода не показывает, что вы используете другой источник изображения или как определяется область действия image_new. Без более полного примера вашего реального кода трудно сказать наверняка.

Следующая команда (works-my-machine) создаст 10 элементов с одинаковым изображением:

    public MainPage()
    {
        InitializeComponent();

        this.Loaded += MainPage_Loaded;
    }

    private void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
        for (var i = 0; i < 10; i++)
        {
            var image_new = new Image();
            var pi = new PanoramaItem();

            var bi = new BitmapImage(new Uri("/Background.png", UriKind.Relative));

            image_new.Source = bi;
            pi.Content = image_new;
            image_panaroma.Items.Add(pi);
        }
    }

Используете ли вы январское обновление? (Я вижу выше для отказа от WOMM) Это обновление включает в себя изменения, которые влияют на управление панорамой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...