【问题标题】:Send bitmap parameter to another xaml page将位图参数发送到另一个 xaml 页面
【发布时间】:2014-12-05 07:14:20
【问题描述】:

在 Windows Phone 8.1 中,我有一个 ListView。我的列表中填充了 ObservableCollection 图片。在图片类中,我有 pictureName 和 bitmapImage。 在 ListView_Item_Click 中,我想单击图片并将其发送到另一个 xaml 页面。

BitmapImage img = new BitmapImage();
img = ((Picture)e.ClickedItem).Image;//imi selectez imaginea care doresc!!
var image = new Image();
image.Source = img;
Frame.Navigate(typeof(Page2), image);  in mainpage.xaml.cs

【问题讨论】:

  • 到底是什么问题?

标签: windows xaml windows-phone-8.1


【解决方案1】:

我不会将 BitmapImage 作为 Frame.Navigate 的参数传递 - 它不可序列化并且 SuspensionManager 会出现问题或恢复/暂停事件。

解决方案取决于您的图像 - 它们来自哪里 - 如果它是一个文件,那么您可以只传递该文件的路径,然后在 OnNavigated(例如)中,设置 ImageSource 来自文件。

其他方法可能是在目标页面被导航到之前设置 BitmapImage - 例如使用 static 属性:

public class TargetPage : Page, INotifyPropertyChanged
{
    private static BitmapImage bmpImage;
    public static BitmapImage BmpImage
    {
        get { return bmpImage; }
        set { bmpImage = value; RaisePropertyChanged("BmpImage"); }
    }
    // rest of the code

那么你可以在导航前设置图片:

TargetPage.BmpImage = img;
Frame.Navigate(typeof(TargetPage));

您还应该记住 SuspendingResuming 事件,以及您的应用在 Suspended 时被终止的情况。在每种情况下,您都应该以某种方式记住图像的来源 - 使用 SuspensionManagerPageStateSettings 或其他方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    相关资源
    最近更新 更多