我正在使用 Windows Phone 7。
我必须将从 PhotoChooserTask 中选择的图像绑定到一个 ListBox 中,例如 Windows Phone 7 中的 Tiles。
我有一个这样的设计文件:
<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();
在这里我可以选择任何图像数量所以我已经使用了列表框。
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;
}
}
}
}
在这里,我可以绑定图像,但图像的尺寸不同,但我给按钮和图像标签提供了固定尺寸(高度和宽度),但我仍然得到不同尺寸(不同高度和宽度)的图像。如何使图像以相同大小绑定?
谢谢,
阿维纳什