2014-10-21 3 views
0

나는 사진 라이브러리에서 이미지를 선택하고 이미지를 표시하도록 요청하는 응용 프로그램을 사용하여 텍스트 나 다른 객체를 이미지에 추가 할 수 있습니다. 사용자가 주 이미지를 선택하고 보조 페이지로 이동하면 이미지가 사라집니다. 나는 이것을 알아낼 수 없다. 나는 그것이 간과 한 간단한 것이기를 바랍니다.이미지 저장 (페이지 상태)

감사합니다.

다음은 내가 테스트 할 수있는 간단한 샘플입니다. 나는 메인 이미지와 2 개의 버튼으로 구성된 사진을 선택하여 두 번째 페이지로 이동하고 두 번째 페이지에는 메인 페이지로 다시 돌아 가기위한 버튼이 있습니다.

public partial class MainPage : PhoneApplicationPage 
{ 
    // Constructor 
    PhotoChooserTask photoChooserTask; 


    public MainPage() 
    { 
     InitializeComponent(); 

     // Sample code to localize the ApplicationBar 
     //BuildLocalizedApplicationBar(); 
    } 

    private void btnAdd_Click(object sender, RoutedEventArgs e) 
    { 
     photoChooserTask = new PhotoChooserTask(); 
     photoChooserTask.Completed += new EventHandler<PhotoResult>(photoChooserTask_Completed); 
     photoChooserTask.Show(); 
    } 

    void photoChooserTask_Completed(object sender, PhotoResult e) 
    { 
     //Code to display the photo on the page in an image control named myImage. 

     BitmapImage pic = new BitmapImage(); 
     if (pic != null) 
     { 
      pic.SetSource(e.ChosenPhoto); 
      e.ChosenPhoto.Position = 0; 
     } 
     else 
     { 
     } 

     imgMain.Source = pic; 
     // appsettings.Add("_imgMain", pic); 

    } 

    private void btnPage_Click(object sender, RoutedEventArgs e) 
    { 
     NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.Relative)); 
    } 

초 페이지 여기

public Page1() 
    { 
     InitializeComponent(); 
    } 

    private void btnGoBack_Click(object sender, RoutedEventArgs e) 
    { 
     NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); 
    } 

답변

0

가 문제입니다 :

뒤로 단추를 효과적으로 새로운 상태로 새로운 페이지를 인스턴스화, 새로운 메인 페이지로 이동을 누르면
private void btnGoBack_Click(object sender, RoutedEventArgs e) 
{ 
    // <<<<< Creates new page >>>>>>>> 
    NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); 
} 

및 컨트롤.

당신은 이동하여 스택을이를 다시 작성합니다

Main => Page1 => Main 

는 네비게이션 코드를 제거, 당신을 위해 이미 생성 된 메인 페이지로 다시 탐색을 처리 할 윈도우 폰 OS.

+0

버튼을 사용하는 방법은 무엇입니까? 내가 요청하는 이유는 내가 작업하고있는 앱에 있으며, 뒤로 버튼에는 몇 가지 변수를 쓰고 있습니다. 내 애플 리케이션에 내 뒤로 버튼에서 코드는 아래 있습니다. 감사 '개인 무효 buttonAdd_Click (개체 발신자, EventArgs 전자) { Data.txtText = txtBox.Text; Data.txtFontFamily = txtBox.FontFamily; NavigationService.Navigate (새 Uri ("/ MainPage.xaml", UriKind.Relative)); } – branedge

0

@thumbmunkeys는 이미 문제를 언급했습니다. 네비게이션 스택에 사이클을 생성해서는 안되며 구조와 같은 트리 구조로 만들어야합니다. 여분의 뒤로 단추를 계속 사용하려면 다음 코드를 사용하십시오.

private void btnGoBack_Click(object sender, RoutedEventArgs e) 
{ 
    //your additional code here 
    NavigationService.GoBack(); 
} 

이렇게하면 백 스택에서 항목 하나가 제거됩니다. 그러나 여전히 사용자가 하드웨어 백 키를 친 기회가 있습니다.이 경우 추가 코드가 실행되지 않습니다. 더 좋은 옵션은 뒤로 버튼 PhoneApplicationPage.OnBackKeyPress method insted를 사용하는 것입니다.

protected override void OnBackKeyPress(CancelEventArgs e) 
{ 
    base.OnBackKeyPress(e); 
    //your additional code here 
} 

시스템이 백 스택을 처리하므로 사용자가 원하는 것을 성취 할 수 있습니다.