1

すべて、私は基本的な Windows 7 Phone アプリケーションを持っており、ユーザーが電話のカメラで撮影した画像をトリミングできるトリミング ページを完成させました。cameraCapTask_Completedアプリのグローバルを設定した場合WritableBitmap

public static WriteableBitmap capturedImage;

次のように

void cameraCapTask_Completed(object sender, PhotoResult e)
{
    if (e.TaskResult == TaskResult.OK && e.ChosenPhoto != null)
    {
        // Take JPEG stream and decode into a WriteableBitmap object.
        App.capturedImage = PictureDecoder.DecodeJpeg(e.ChosenPhoto);

写真を撮ったら、それをCropProcessPageコンストラクターのトリミングページに渡します。ページに画像を設定します

public CropProcessPage()
{
    InitializeComponent();

    // Set the text and display captured image.
    imageMain.Source = App.capturedImage;

これは機能します。ただし、メイン ページに戻って別の画像を再撮影/撮影すると、新しい画像を取得しようとすると、古い画像 (最初に撮影した画像) が表示されます。コンストラクターが呼び出され、カメラ キャプチャ イベント (新しい画像の設定) も呼び出されます。ここで何が間違っていますか?

4

1 に答える 1

1

CropProcessPageで

ラインを移動

imageMain.Source = App.capturedImage;

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
// Set the text and display captured image.
    imageMain.Source = App.capturedImage;
}
于 2012-04-05T18:06:31.960 に答える