以编程方式添加全景项

时间:2013-06-20 10:43:44

标签: silverlight windows-phone-7 xaml c#-4.0 panorama-control

我正在使用Windows Phone 7.5应用程序,我想在全景控制中以编程方式显示图像列表。我有xaml

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

,代码部分是 -

 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);

但它显示Microsoft.Phone.Control.PanoramaItem不包含对项目的定义的错误。 我该如何解决这个问题?请帮忙。 是否还有其他方法可以在全景图中以编程方式添加图像?

2 个答案:

答案 0 :(得分:2)

根据您的示例,您正在尝试将新PanoramaItem添加到现有PanoramaItem。这不起作用 - 您需要将新的PanoramaItem添加到父控件:Panorama对象。

答案 1 :(得分:1)

PanoramaItemPivotItem添加多个项目时,您必须先添加一个包含元素,例如GridStackPanelCanvas

在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>

在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