Search code examples
silverlightwindows-phone-7xamlc#-4.0panorama-control

Programmatically add Panorama Items


I am working on windows Phone 7.5 App and I want to display a list of images programmatically in panorama control.I have the xaml

 <!--Panorama item three-->
 <controls:PanoramaItem x:Name="DiaPanorama" Header="History" FontSize="20">

and the code part is -

 PanoramaItem p = new PanoramaItem();
 Image i = new Image();
 i.Source = new BitmapImage(new Uri("/web.png", UriKind.Relative));
 p.Margin = new Thickness(0, -10, 0, -2);

 p.Content = i;
 DiaPanorama.Items.Add(p);

but it's showing an error that Microsoft.Phone.Control.PanoramaItem does not contain defination for Items. How can i solve this problem?Please help. Is there any other approach for adding images programmatically in panorama?


Solution

  • When adding multiple items to a PanoramaItem or PivotItem, you must add a containing element first such as a Grid, StackPanel or Canvas

    In XAML

    <controls:Panorama x:Name="Panorama" Title="Panorama Control">
        <controls:PanoramaItem x:Name="Item1" Header="Item 1">
            <StackPanel>
                <TextBlock Text="Hello World" />
                <Image Source="Background.png" />
            </StackPanel>
        </controls:PanoramaItem>
    </controls:Panorama>
    

    In C#

    var item = new PanoramaItem();
    var panel = new StackPanel();
    
    var text = new TextBlock();
    text.Text = "HelloWorld";
    panel.Children.Add(text);
    
    var image = new Image();
    image.Source = new BitmapImage(new Uri("Background.png", UriKind.Relative));
    panel.Children.Add(image);
    
    item.Content = panel;
    Panorama.Items.Add(item); // Add to existing panorama control