Xaml Windows 8.1将焦点放在文本框上

Xaml Windows 8.1将焦点放在文本框上,xaml,windows-store-apps,winrt-xaml,Xaml,Windows Store Apps,Winrt Xaml,对于Windows应用商店应用程序,一项要求是:“在加载页面时以及用户与其他组件交互后,将焦点放在文本框上” 我解决了加载页面以及用户与同一网格中的其他组件(即按钮)交互时的问题 问题是当用户在不同的视图中与组件交互时,比如AppBar 如果父视图来自同一个视图,也许我可以通过比较父视图来解决这个问题,并运行焦点(FocusState.prographical) 但是。。。怎么做 根据您的描述,您希望关注文本框。我做了一个简单的演示,你可以参考这个 XAML: <Grid Backgrou

对于Windows应用商店应用程序,一项要求是:“在加载页面时以及用户与其他组件交互后,将焦点放在文本框上”

我解决了加载页面以及用户与同一网格中的其他组件(即按钮)交互时的问题

问题是当用户在不同的视图中与组件交互时,比如AppBar

如果父视图来自同一个视图,也许我可以通过比较父视图来解决这个问题,并运行焦点(FocusState.prographical)


但是。。。怎么做

根据您的描述,您希望关注文本框。我做了一个简单的演示,你可以参考这个

XAML:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Bottom">
    <TextBox x:Name="textbox1" Width="300" Height="50" HorizontalAlignment="Left" VerticalAlignment="Bottom"></TextBox>
    </StackPanel>
    <CommandBar>
        <AppBarToggleButton Icon="Shuffle" Label="Shuffle" Click="AppBarButton_Click" />
        <AppBarToggleButton Icon="RepeatAll" Label="Repeat" Click="AppBarButton_Click"/>
        <AppBarSeparator/>
        <AppBarButton Icon="Back" Label="Back" Click="AppBarButton_Click"/>
        <AppBarButton Icon="Stop" Label="Stop" Click="AppBarButton_Click"/>
        <AppBarButton Icon="Play" Label="Play" Click="AppBarButton_Click"/>
        <AppBarButton Icon="Forward" Label="Forward" Click="AppBarButton_Click"/>
        <CommandBar.SecondaryCommands>
            <AppBarButton Icon="Like" Label="Like" Click="AppBarButton_Click"/>
            <AppBarButton Icon="Dislike" Label="Dislike" Click="AppBarButton_Click"/>
        </CommandBar.SecondaryCommands>
        <CommandBar.Content>
            <TextBlock Text="Now playing..." Margin="12,14"/>
        </CommandBar.Content>
    </CommandBar>
</Grid>

我还发现您可以参考。

根据您的描述,您希望关注文本框。我做了一个简单的演示,你可以参考这个

XAML:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Bottom">
    <TextBox x:Name="textbox1" Width="300" Height="50" HorizontalAlignment="Left" VerticalAlignment="Bottom"></TextBox>
    </StackPanel>
    <CommandBar>
        <AppBarToggleButton Icon="Shuffle" Label="Shuffle" Click="AppBarButton_Click" />
        <AppBarToggleButton Icon="RepeatAll" Label="Repeat" Click="AppBarButton_Click"/>
        <AppBarSeparator/>
        <AppBarButton Icon="Back" Label="Back" Click="AppBarButton_Click"/>
        <AppBarButton Icon="Stop" Label="Stop" Click="AppBarButton_Click"/>
        <AppBarButton Icon="Play" Label="Play" Click="AppBarButton_Click"/>
        <AppBarButton Icon="Forward" Label="Forward" Click="AppBarButton_Click"/>
        <CommandBar.SecondaryCommands>
            <AppBarButton Icon="Like" Label="Like" Click="AppBarButton_Click"/>
            <AppBarButton Icon="Dislike" Label="Dislike" Click="AppBarButton_Click"/>
        </CommandBar.SecondaryCommands>
        <CommandBar.Content>
            <TextBlock Text="Now playing..." Margin="12,14"/>
        </CommandBar.Content>
    </CommandBar>
</Grid>
我也发现你可以参考

        public MainPage()
    {
        this.InitializeComponent();
        this.LayoutUpdated += MainPage_LayoutUpdated;
    }

    private void MainPage_LayoutUpdated(object sender, object e)
    {
        textbox1.Focus(Windows.UI.Xaml.FocusState.Programmatic);
    }