2017-10-04 3 views
0

간단한 것은 버튼을 클릭하면 자동 검색 상자가 열리고 여기에 집중하여 모바일에서 키보드를 열거 나 클릭없이 직접 작성할 수있는 버튼입니다. 왜 - "텍스트의 영역"AutoSuggestBox.focus가 처음 작동하지 않습니다.

Boolean AutoSuggestBoxRicercaOn = true; 

public MainPage() 
{ 
    this.InitializeComponent(); 
    AutoSuggestion.Visibility = Visibility.Collapsed; 
} 

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    if (AutoSuggestBoxRicercaOn) 
    { 
     AutoSuggestion.Visibility = Visibility.Visible; 
     AutoSuggestBoxRicercaOn = false; 

     AutoSuggestion.Focus(FocusState.Programmatic); 
    } 
    else 
    { 
     AutoSuggestion.Visibility = Visibility.Collapsed; 
     AutoSuggestBoxRicercaOn = true; 
    } 
} 

는 내가 처음되지는 ASbox 볼 수 있도록 버튼을 클릭하면

그것은 두 번째 시간에서 작동 [는 XML은 autosuggestbox과 buttton이다]? 처음에 그렇게 할 수있게하려면 어떻게해야합니까? 모든

감사합니다}

답변

0

내가는 ASbox 볼 수 있도록 버튼을 처음하지를 클릭 할 때 그것은 두 번째 시간에서 작동 - 왜?

당신이 초점 설정 방법의 반환 결과를 얻을하려는 경우, 당신은 (Focus 방법 클래스 Control의 참조) 컨트롤이 포커스없는 몇 가지 이유 수단을 처음으로 AutoSuggestion.Focus 반환 false, 발견 할 것이다 . 이것이 처음으로 AutoSuggestBox에 집중하지 않는 이유입니다.

컨트롤이 포커스를 맞추지 못하는 이유는 을 조금 추가했기 때문에 AutoSuggestBox이 초기화되지 않아서 발생한 것일 수 있습니다. 내가 너무 처음에 그렇게 할 수있는 방법을

private async void Button_Click(object sender, RoutedEventArgs e) 
{ 
    if (AutoSuggestBoxRicercaOn) 
    { 
     AutoSuggestion.Visibility = Visibility.Visible; 
     AutoSuggestBoxRicercaOn = false; 
     await Task.Delay(TimeSpan.FromSeconds(0.05)); 
     bool setresult = AutoSuggestion.Focus(FocusState.Programmatic); 
     System.Diagnostics.Debug.WriteLine("the setting focus result:" + setresult) 
    } 
    else 
    { 
     AutoSuggestion.Visibility = Visibility.Collapsed; 
     AutoSuggestBoxRicercaOn = true; 
    } 
} 

강제 할 수 있습니다 : 다음과 같은 테스트 코드?

초기 Visibility 속성 설정을 생성자 대신 Page_Loaded 이벤트 핸들 내에 넣을 수 있습니다. 어느 것이 동일한 효력을 가지고 처음으로 일할 수 있습니다.

<Page 
    ... 
    mc:Ignorable="d" 
    Loaded="Page_Loaded"> 

private void Page_Loaded(object sender, RoutedEventArgs e) 
{ 
    AutoSuggestion.Visibility = Visibility.Collapsed; 
} 
관련 문제