C# 如何使用现代UI设置子元素的焦点
我在这里得到了一个LoginPage.xaml: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"
<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()));
}
}