C# 如何使用现代UI设置子元素的焦点

C# 如何使用现代UI设置子元素的焦点,c#,wpf,user-controls,textbox,focus,C#,Wpf,User Controls,Textbox,Focus,我在这里得到了一个LoginPage.xaml: <mui:ModernWindow x:Class="NeoClinic.MAS.LoginPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

我在这里得到了一个LoginPage.xaml:

<mui:ModernWindow x:Class="NeoClinic.MAS.LoginPage"
                  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                  xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                  xmlns:mui="http://firstfloorsoftware.com/ModernUI"
                  Title="Login" IsTitleVisible="True"                         
                  ContentSource="Pages\LoginBasic.xaml"
                  WindowState="Maximized"
                  WindowStartupLocation="CenterScreen"
                  Closing="LoginPage_OnClosing"
                  >

    <mui:ModernWindow.MenuLinkGroups>
        <mui:LinkGroup x:Name="LoginLinkGroup" DisplayName="Login" >
            <mui:LinkGroup.Links>

                <mui:Link x:Name="LoginLink" DisplayName="Login" Source="Pages\LoginBasic.xaml" />
            </mui:LinkGroup.Links>
        </mui:LinkGroup>

    </mui:ModernWindow.MenuLinkGroups>

</mui:ModernWindow>
这是UserControl中的构造函数:

    public LoginBasic()
{
    InitializeComponent();       
    FocusManager.SetFocusedElement(this, UserNameTextBox);// the insertion appears but not active it seems
}
我找到了

public LoginBasic()
        {
            InitializeComponent();
            //FocusManager.SetFocusedElement(this, UserNameTextBox);
            //Keyboard.Focus(UserNameTextBox);

            this.IsVisibleChanged += LoginControl_IsVisibleChanged; 


        }




void LoginControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
    {
        if ((bool)e.NewValue == true)
        {
            Dispatcher.BeginInvoke(
            DispatcherPriority.ContextIdle,
            new Action(() => UserNameTextBox.Focus()));
        }
    } 
来源基于

txtName在哪里?你是说
UserNameTextBox
    public LoginBasic()
{
    InitializeComponent();       
    FocusManager.SetFocusedElement(this, UserNameTextBox);// the insertion appears but not active it seems
}
public LoginBasic()
        {
            InitializeComponent();
            //FocusManager.SetFocusedElement(this, UserNameTextBox);
            //Keyboard.Focus(UserNameTextBox);

            this.IsVisibleChanged += LoginControl_IsVisibleChanged; 


        }




void LoginControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
    {
        if ((bool)e.NewValue == true)
        {
            Dispatcher.BeginInvoke(
            DispatcherPriority.ContextIdle,
            new Action(() => UserNameTextBox.Focus()));
        }
    }