选中复选框后的焦点文本框
本文关键字:焦点 文本 复选框 | 更新日期: 2023-09-27 18:30:52
那是我的xaml:
<CheckBox Content="Length" IsChecked="{Binding Path=MessageLengthChecked}" x:Name="LengthCheckBox"/>
<TextBox x:Name="LengthTextBox" Text="{Binding Length}" IsEnabled="{Binding ElementName=LengthCheckBox, Path=IsChecked}"/>
如果用户选中该复选框,则应聚焦文本框并标记内容。我该怎么做?
你可以这样做 这是复选框中的选中事件
LengthTextBox.Focus();
LengthTextBox.SelectAll();
将控件包含在父容器(例如网格)中,然后触发数据触发器以设置焦点元素。
<Grid>
<Grid.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding MessageLengthChecked}" Value="True">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=LengthTextBox}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<CheckBox Content="Length" IsChecked="{Binding Path=MessageLengthChecked}" x:Name="LengthCheckBox"/>
<TextBox x:Name="LengthTextBox" Text="{Binding Length}" IsEnabled="{Binding ElementName=LengthCheckBox, Path=IsChecked}"/>
</Grid>
在 XAML 中添加事件复选框
<CheckBox Content="CheckBox" Name="myCheckBox" Checked="myCheckBox_Checked" />
通过 c# 代码尝试以下操作:
private void myCheckBox_Checked(object sender, RoutedEventArgs e)
{
if (((CheckBox)sender).IsChecked == true)
{
myTextBox.Focus();
myTextBox.SelectAll();
}
else
{
//TODO
}
}