오케이,이 것은 재미있을 것입니다. 내 응용 프로그램에 인증 흐름을 구축하고 있습니다. 내 응용 프로그램은 webbrowser 요소가있는 모달 창을 열고 인증 URL을 찾습니다. 그런 다음 특정 문자열에 대한 webbrowser 요소의 URL 변경 사항을 모니터링합니다. 문자열을 찾으면 액세스 코드를 검색하고 창을 닫은 다음 부모에게 코드를 반환합니다. 다음과 같이 내 코드는 다음과 같습니다모달 창에서 DialogResult 오류가 발생했습니다.
모달 창
string url = ...
Browser browser = new Browser(new Uri(url));
browser.Owner = parent;
if (browser.ShowDialog() == true)
{
password.Password = browser.result;
...
}
그리고 물론
, 오류가 내가 얻을 :DialogResult를
public partial class Browser : Window { private string code = ""; private Uri navi; public TwitchBrowser(Uri url) { InitializeComponent(); this.navi = url; } private void Window_Loaded(object sender, RoutedEventArgs e) { webBrowser.Navigate(this.navi); webBrowser.Navigating += webBrowser_Navigating; } void webBrowser_Navigating(object sender, NavigatingCancelEventArgs e) { if (e.Uri.ToString().Contains("?code=")) { this.code = e.Uri.ToString().Split('?')[1].Split('&')[0].Replace("code=", ""); this.DialogResult = true; } } public string result { get { return code; } } }
부모로부터 호출 창을 생성하고 대화 상자로 표시 한 후에 만 설정할 수 있습니다.
흥미로운 것은 앱이 작동합니다! 코드를 가져 와서 암호 필드에 저장합니다. 그래서 오류의 요점은 무엇입니까? 나는 Try-Catch로 그것을 억제 할 수 있다는 것을 안다; 하지만 나는 더 큰 문제의 뿌리를 두려워합니다.
감사합니다. 그게 효과가 있었어. –
사실, 아뇨, 작동하지 않았습니다. 오류가 계속 발생합니다. –
현재 코드를 나타 내기 위해 OP 코드를 업데이트했습니다. –