0

私はWindows Phone 7で作業しています。

Windows Phone 7 の Tiles のように、PhotoChooserTask から選択した画像を ListBox にバインドする必要があります。

次のような設計ファイルがあります。

<ListBox x:Name="lstImages" Height="530" Margin="0,10,0,0"
                     ScrollViewer.VerticalScrollBarVisibility="Hidden">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <Button Style="{StaticResource PickerBoxButton}" 
                                x:Name="btnDashboardItems"
                                Tag="{Binding Name}" 
                                Padding="0" Margin="-18,0,-12,-45" Height="200"
                                Width="200">                                    
                                    <Button.Template>
                                        <ControlTemplate>
                                            <StackPanel Height="173" Width="173">
                                                <Image Height="173" Width="173"
                                                       Source="{Binding Image}" /> 
                                            </StackPanel>
                                        </ControlTemplate>
                                    </Button.Template>
                                </Button>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                        <ListBox.ItemsPanel>
                            <ItemsPanelTemplate>
                                <toolkit:WrapPanel Width="450" Orientation="Horizontal" />
                            </ItemsPanelTemplate>
                        </ListBox.ItemsPanel>
                    </ListBox>

そして、私は次のような ImageList というクラスを持っています:

public class ImageList
    {
        public string Name { get; set; }
        public BitmapImage Image { get; set; }
    }

そして、私は次のようにリストボックスにバインドしています:

PhotoChooserTask task = new PhotoChooserTask();
task.Completed += new EventHandler<PhotoResult>(task_Completed);
task.Show();

ここで、任意の No of Images を選択できるので、ListBox を取得しました。

Random _Random = new Random();
 private void task_Completed(object sender, PhotoResult e)
        {
            if (e.TaskResult == TaskResult.OK)
             {
                System.IO.Stream stream = e.ChosenPhoto;
                BitmapImage bmp = new BitmapImage();
                bmp.CreateOptions = BitmapCreateOptions.None;
                bmp.SetSource(stream);
                img.Image = bmp;
                img.Name = _Random.Next(int.MaxValue).ToString() + ".jpg";
                StateUtilities.ImageList.Add(img);  
                if (StateUtilities.ImageList != null)
               {
                   if (StateUtilities.ImageList.Count > 0)
                   {
                      lstImages.ItemsSource = StateUtilities.ImageList;
                   }
               }    
             }
        }

ここで画像をバインドできますが、画像はさまざまなサイズで表示されますが、ボタンと画像タグに固定サイズ (高さと幅) を指定しましたが、異なるサイズ (高さと幅が異なる) で画像を取得しています。その画像を同じサイズでバインドするにはどうすればよいですか?

ありがとう、

アビナッシュ

4

1 に答える 1

0

コンテンツに合わせてStackPanelが伸びると思います。

MaxWidth と MaxHeight も設定してみましたか?

于 2012-07-11T08:31:37.440 に答える