如何使用 xaml 代码将光标聚焦在 wpf 中的文本框上
本文关键字:wpf 文本 聚焦 xaml 何使用 代码 光标 | 更新日期: 2024-09-17 04:14:16
<Grid x:Name="LayoutRoot">
<Button x:Name="btn_A" Content="A" HorizontalAlignment="Left" Height="36" Margin="194,160,0,0" VerticalAlignment="Top" Width="70" Click="Button_Click" />
<TextBox x:Name="txt_focus" HorizontalAlignment="Left" Height="34.5" Margin="177,98,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="97" TextChanged="TextBox_TextChanged" />
</Grid>
下面的 C# 代码
public partial class focus : Window
{
public focus()
{
this.InitializeComponent();
}
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
txt_focus.Focus();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
txt_focus.Text += btn_A.Content.ToString();
}
private void txt_focus_GotFocus(object sender, RoutedEventArgs e)
{
int count = txt_focus.Text.Length;
txt_focus.CaretIndex = count;
}
}
上面的代码运行良好。但我需要的是,我必须在 xaml 中实现以下代码
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
txt_focus.Focus();
}
你可以试试这段代码
<StackPanel Orientation="Vertical"
FocusManager.FocusedElement="{Binding ElementName=txt_focus}">
<TextBox x:Name="txt_focus"
HorizontalAlignment="Left"
Height="34.5"
Margin="167.5,139,0,0"
TextWrapping="Wrap"
VerticalAlignment="Top"
Width="97"
TextChanged="TextBox_TextChanged" />
</StackPanel>
你可以在这里使用 javascript 并使用以下代码:
if(isset($_REQUEST['sub_con_page']))
{
//correct
}
else
{ ?>
<script type="text/javascript">
$(document).ready(function() {
$("#txt_focus").focus();
});
</script>
<?php } ?>