如何在wpf中的滚动查看器中设置多个画布?

如何在wpf中的滚动查看器中设置多个画布?,wpf,windows-phone-7,c#-4.0,scrollviewer,Wpf,Windows Phone 7,C# 4.0,Scrollviewer,我想在画布控件中设置一个图像,并使用循环创建20个画布。问题是,当我想将所有这些画布项添加到滚动查看器中时,它不起作用。这是我的密码: private void CreateAndShowCanvas() { List<Canvas> list = new List<Canvas>(); for (int i = 0; i < 20; i++) { Canvas myCanvas1 = new Canvas();

我想在画布控件中设置一个图像,并使用循环创建20个画布。问题是,当我想将所有这些画布项添加到滚动查看器中时,它不起作用。这是我的密码:

private void CreateAndShowCanvas()
{
    List<Canvas> list = new List<Canvas>();

    for (int i = 0; i < 20; i++)
    {


        Canvas myCanvas1 = new Canvas();
        myCanvas1.Background = new SolidColorBrush(Colors.Transparent);
        myCanvas1.Height = 235;
        myCanvas1.Width = 626;
        //Canvas.SetZIndex(myCanvas1, 4);
        Image MainImage = new Image();
        MainImage.Width = 275;
        MainImage.Height = 235;
        BitmapImage mi = new BitmapImage(new Uri("select_1.png", UriKind.Relative));
        MainImage.Source = mi;
        Canvas.SetTop(MainImage, 0);
        Canvas.SetLeft(MainImage, 0);
        myCanvas1.Children.Add(MainImage);

        Image SeparatorImage = new Image();
        BitmapImage si = new BitmapImage(new Uri("Sentre Seprator.png", UriKind.Relative));
        SeparatorImage.Height = 270;
        SeparatorImage.Source = si;
        Canvas.SetTop(SeparatorImage, -5);
        Canvas.SetLeft(SeparatorImage, 310);
        myCanvas1.Children.Add(SeparatorImage);
        Image SecondImage = new Image();
        SecondImage.Width = 275;
        SecondImage.Height = 235;
        BitmapImage sci = new BitmapImage(new Uri("select_2.png", UriKind.Relative));
        SecondImage.Source = sci;
        Canvas.SetTop(SecondImage, 0);
        Canvas.SetLeft(SecondImage, 350);
        myCanvas1.Children.Add(SecondImage);
        list.Add(myCanvas1); 
    }

    scv.Content = list;
 }
和XML格式:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <ScrollViewer Name="scv" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" Margin="60,40,59,46" Opacity="99" Background="Transparent" />
</Grid>
</Window>
当我运行它时,它只显示集合。请帮帮我,先谢谢你

A只能容纳一个子项,因此您需要另一种面板类型,如用于容纳画布的网格或堆栈面板

<Grid>
    <ScrollViewer Name="scv" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" Margin="60,40,59,46" Opacity="99" Background="Transparent">
        <StackPanel Name="stp" />
    </ScrollViewer>    
</Grid>

将画布添加到stp中。

您是否应该只使用一个包含画布的ItemTemplate的列表框?必须有一种比手动创建20张画布更简单的方法来完成您试图实现的任何事情


.

您是为WPF还是Windows Phone 7开发的?这些不一样!如果我看一下您的代码Class=WpfApplication1.main窗口,我肯定您指的是WPF而不是WP7。。。