Мне нужно установить фокус на текстовое поле. Проблема заключается в том, что когда на странице присутствует элемент управления WebBrowser, SIP отображается так, как будто текстовое поле выбрано, но курсор не виден в текстовом поле и ввод не идет в текстовое поле.
Если я закомментирую элемент управления WebBrowser, то поведение будет таким, как ожидалось - курсор будет мигать в TextBox при загрузке страницы.
Вот XAML:
<phone:PhoneApplicationPage
x:Class="WP7Sample.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
Loaded="MainPageLoaded">
<StackPanel x:Name="LayoutRoot">
<TextBox x:Name="txt"/>
<phone:WebBrowser/>
</StackPanel>
</phone:PhoneApplicationPage>
И код позади:
void MainPageLoaded(object sender, RoutedEventArgs e)
{
txt.Focus();
}
Я пробовал разные обходные пути, но не повезло.
А именно, я попытался вызвать SetFocus из событий Load, NavigatedTo и т. Д. Я также попытался установить фокус на какой-то другой элемент управления и затем вернуться к текстовому полю, тоже не повезло.
Может ли кто-нибудь обойти эту проблему?
Кстати, проблема воспроизводится на эмуляторе, на устройствах HTC Mozart и Trophy, на которых установлено обновление NoDo.