簡體   English   中英

應用程序啟動時將焦點放在PasswordBox上

[英]Set focus on PasswordBox when application starts

我為什么不能將重點放在我的PasswordBox控件上?

C#:

public Login()
{
   InitializeComponent();
   _password.Focus();
}

XAML:

<PasswordBox x:Name="_password" Width="200" Height="30" FontSize="14" 
 KeyDown="_password_KeyDown"/>

在構造函數中進行設置時,還為時過早。 請嘗試使用Load事件處理程序。

public Login()
{
    InitializeComponent();

    this.Loaded += new RoutedEventHandler(Login_Loaded);
}

void Login_Loaded(object sender, RoutedEventArgs e)
{
    _password.Focus();
}

您也可以在XAML中執行此操作:

  <Window ....
        FocusManager.FocusedElement="{Binding ElementName=_password}"
         ... />

WPF提供了一種很好的優雅方式(僅xaml)

FocusManager.FocusedElement="{Binding ElementName=pass}">

例:

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525"
        FocusManager.FocusedElement="{Binding ElementName=pass}">
    <Grid>
        <Button Content="Button" HorizontalAlignment="Left" Margin="261,165,0,0" VerticalAlignment="Top" Width="75"/>
        <TextBox x:Name="name" HorizontalAlignment="Left" Height="23" Margin="70,193,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
        <TextBox x:Name="pass" HorizontalAlignment="Left" Height="23" Margin="70,165,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>

    </Grid>
</Window>

在此處輸入圖片說明

如果要在XAML執行此操作:

<StackPanel FocusManager.FocusedElement="{Binding ElementName=_password}">
   <PasswordBox Name="_password" />
</StackPanel>

請注意( MSDN ):

整個桌面上只能有一個具有鍵盤焦點的元素。 在WPF中,具有鍵盤焦點的元素將IsKeyboardFocused設置為true。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM