我想为WP7创建贺卡制造商应用程序,当用户双击列表框中的图像时,我希望所选图像填充同一页面上的矩形。我将50张图像传递到列表框中,如下所示:
public GCM()
{
InitializeComponent();
var articles = new List<Article>();
for (byte i = 1; i <= 20; i++)
{
Article article = new Article() { Name = "name"+i, ImagePath = "Assets/Images/Backgrounds/"+i+".jpg" };
articles.Add(article);
}
listBox1.DataContext = articles;
}
及其工作正常,现在是一个xml片段:
<Rectangle Fill="#FFF4F4F5" Margin="28,24,30,148" Stroke="Black" Name="rect1" />
................(more code here).........................
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Margin="10" >
<Image Name="bgs" Source="{Binding ImagePath}" Height="90" Width="90" DoubleTap="Load_BG" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
如何用点击的图像填充矩形?不管我选择哪个图像,此代码(如下)每次都将字符串设置为null,尽管据我所知每个名称都有不同的名称,并且应该为不同的图像指定不同的名称。我将使用图像名称填充矩形。我究竟做错了什么?
private void Load_BG(object sender, System.Windows.Input.GestureEventArgs e)
{
string abc = sender.GetType().Name;
}
如果解决方案很明显,请原谅。.这是我有史以来第一个应用程序。谢谢!
所以这是解决方案,它现在可以工作了:)
private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var img = listBox1.SelectedItem as Article;
ImageBrush imgBrush = new ImageBrush();
imgBrush.ImageSource = new BitmapImage(new Uri(img.ImagePath, UriKind.RelativeOrAbsolute));
rect1.Fill = imgBrush;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句