我正在使用Windows Phone 7。
我必须将从PhotoChooserTask中选择的图像绑定到类似Windows Phone 7中的Tiles的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();
在这里,我可以选择任意图像,所以我选择了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;
}
}
}
}
在这里我可以绑定图像,但图像有不同的尺寸,但我已经给按钮和图像标签固定尺寸(高度和宽度),我仍然得到不同尺寸的图像(不同的高度和宽度)。 如何使图像以相同大小绑定?
谢谢,
阿维纳什
答案 0 :(得分:0)
我认为StackPanel会根据内容进行扩展。
您是否尝试过设置MaxWidth和MaxHeight?