【问题标题】:WP8 MediaLibrary, view photo in LongListMultiSelectorWP8 MediaLibrary,在 LongListMultiSelector 中查看照片
【发布时间】:2013-11-15 08:25:02
【问题描述】:

我需要在 LongListMultiSelector 中显示我的设备 (WP8) 中存在的所有照片。 我用这个方法

 MediaPlayer.Queue.ToString();
        MediaLibrary mediaLibrary;
        PictureAlbum cameraRoll = null;


        foreach (MediaSource source in MediaSource.GetAvailableMediaSources())
        {
            if (source.MediaSourceType == MediaSourceType.LocalDevice)
            {
                mediaLibrary = new MediaLibrary(source);
                PictureAlbumCollection allAlbums = mediaLibrary.RootPictureAlbum.Albums;
                foreach (PictureAlbum album in allAlbums)
                {
                    if (album.Name == "Camera Roll")
                    {
                        cameraRoll = album;
                    }
                }
            }
        }

        List<BitmapImage> lstBitmapImage = new List<BitmapImage>();
        foreach (Picture p in cameraRoll.Pictures)
        {
            BitmapImage b = new BitmapImage();
            b.SetSource(p.GetThumbnail());
            lstBitmapImage.Add(b);
        }


        PhotoHubLLS.ItemsSource = lstBitmapImage;

在 XAML 中我有这个图像设置

<Image HorizontalAlignment="Left" Margin="6,6,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Source="{Binding}"/>

一切都很完美,但我有一些问题。

我想放大单张图片,点击图片时我要插入此代码

FrameworkElement fe = sender as FrameworkElement;
        if (fe != null)
        {
            CurrentPicture = fe.DataContext as Picture;
        }

但是因为我使用了“源”,所以数据上下文为空。

我该怎么办?

【问题讨论】:

    标签: windows-phone-8


    【解决方案1】:

    这取决于您连接了哪个事件。如果您正在处理 SelectionChanged 事件,则可以从 SelectionChangedEventArgs 事件参数参数中的 addedItems 集合中检索 BitmapImage(不是图片):

    private void LongListSelector_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (e.AddedItems.Count > 0)
        {
            BitmapImage bmp = e.AddedItems[0] as BitmapImage;
        }
    }
    

    或者,如果您在 LongListSelector 的 ItemTemplate 中处理 Image 元素的 Tap 事件,那么您可以从 sender 参数中检索 BitmapImage:

    Image imgElement = sender as Image;
    BitmapImage bmp = imgElement.Source as BitmapImage;
    

    【讨论】:

      猜你喜欢
      • 2013-08-18
      • 1970-01-01
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      • 1970-01-01
      相关资源
      最近更新 更多