2014-01-25 3 views
0

WPF 응용 프로그램에 일반 단추가있는 MainWindow가 있습니다. 내가 OpenFileDialog를 통해 직렬화 된 객체를로드하고 버튼의 클릭 이벤트에 바인딩 :이 방법은 UI가 더 이상 업데이트하지 않습니다 실행됩니다 후OpenFileDialog.ShowDialog()를 호출 한 후 UI가 업데이트되지 않음

private void LoadNetwork_Click(object sender, RoutedEventArgs e) 
{ 
    var openDialog = new OpenFileDialog { Multiselect = false }; 
    var result = openDialog.ShowDialog(); 
    if (result) 
    { 
     string file = openDialog.FileName; 
     try 
     { 
      _network= new SimplifiedNetwork(file, 1); 
      MessageBox.Show("Loaded OK"); 
     } 
     catch (Exception) 
     { 
      MessageBox.Show("Load error"); 
     } 
    } 
} 

. 그리고 내가 아무 말도하지 않으면, 윈도우 작업의 버튼에 마우스를 올려 놓는 것조차도 의미가 없습니다 (코드 뒤의 코드, 속성 변경된 이벤트, 시작 호출 등은 말할 것도 없습니다).).

나는 내 루틴 내부 내가 한 일이라고 생각하지만, 단순히

private void LoadNetwork_Click(object sender, RoutedEventArgs e) 
{ 
    var openDialog = new OpenFileDialog { Multiselect = false }; 
    var result = openDialog.ShowDialog(); 
} 

에 메서드 호출을 동일한 결과를했다 줄일 수있다.

명확화. - 모달 대화 상자를 닫은 후에 발생합니다. - UI가 어떤 이유로 든 포커스를 잃는 즉시 (즉, 최소화 - 복원, 다른 창으로 전환) 즉시 나타납니다. - 내 Windows 8.1 컴퓨터에서만 발생하는 것으로 보입니다. (주위에있는 xp VM에 넣고 OK입니다.)

아이디어가 있으십니까?

+0

OpenFileDialog 상자가 보이십니까? 어떻게 화면이 고정 될 수 있지만 여전히 클릭에 응답 할 수 있습니까? 어떤 "클릭"이 효과가 있습니까? –

+0

예, 객체가로드됩니다. 고정은 좋지 않은 선택입니다. '정적'이 실제로 더 좋을 것입니다. 단추를 가리키면 색상이 바뀌고 그 메서드를 호출하면 단추가 마우스 커서를 가리키면 반응하지 않습니다. 하지만 여전히 클릭 만 할 수 있으며 클릭 이벤트에 연결된 작업을 계속 수행합니다. – LuBa

+0

파일 대화 상자가 열려있는 동안 응용 프로그램과 상호 작용할 수 없다는 말입니까? 그렇습니다, 이것은 설계에 의한 것입니다. – MoonBoots89

답변

0

OpenFileDialog은 모달 대화 상자입니다. 대화 상자가 열려있을 때 백그라운드의 창이 응답하지 않습니다.

Here 자세한 정보 및 가능한 해결 방법입니다.

+0

물론. 그러나 이것은 대화 상자를 닫은 후에도 여전히 발생합니다. 사실, 추가 검사를하면 내 창이 포커스를 잃은 후에 업데이트가 중지됩니다 (예 : 최소화 -> 복원) – LuBa

+0

대화 상자를 닫는 것에 대한 질문에 아무것도 표시하지 않습니다. – thumbmunkeys

+0

맞습니다. 이제는이를 수정했습니다. – LuBa

관련 문제