Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在onload时设置单个文本框焦点的最简单方法_C#_Wpf_Xaml - Fatal编程技术网

C# 在onload时设置单个文本框焦点的最简单方法

C# 在onload时设置单个文本框焦点的最简单方法,c#,wpf,xaml,C#,Wpf,Xaml,基于此链接:,Focus可以通过在StackPanel上设置FocusManager并指定elementName来设置。我试过了,效果不错。我想知道,如果我的XAML中只有一个文本框,而StackPanel是不必要的,那该怎么办 在我只有一个文本框的情况下,有没有其他简单的方法来设置焦点? 我也在上面的链接中尝试了第二个答案,但不起作用: <TextBox Text="{Binding MyText}" FocusManager.FocusedElement="{Binding

基于此链接:,
Focus
可以通过在
StackPanel
上设置
FocusManager
并指定elementName来设置。我试过了,效果不错。我想知道,如果我的
XAML
中只有一个文本框,而
StackPanel
是不必要的,那该怎么办

在我只有一个文本框的情况下,有没有其他简单的方法来设置焦点?

我也在上面的链接中尝试了第二个答案,但不起作用:

<TextBox Text="{Binding MyText}" 
    FocusManager.FocusedElement="{Binding RelativeSource={RelativeSource Self}}"/>




这将适用于您的情况。

我以前这样做过,将焦点放在标题中-在本例中是一个用户控件,但对于窗口应该是相同的)


<TextBox Text="{Binding MyText}" 
       FocusManager.FocusedElement="{Binding RelativeSource={RelativeSource AncestorType=TextBox}}"/>
<TextBox x:Name="MyTBox" Text="{Binding MyText}" 
       FocusManager.FocusedElement="{Binding ElementName=MyTBox}"/>
<UserControl .....
FocusManager.FocusedElement="{Binding ElementName=TextBoxName}">