2
Как включить автоматическую вкладку, когда свойство MaxLength будет достигнуто в XAML Trigger, DataTrigger, PropertyTrigger, Style.Trigger и т. Д. Ниже приведены два таких параметра, как у меня есть уже выполнил это с помощью TextBox с помощью кода. Я также хочу применить его в стиле XAML. Благодарю.XAML Trigger Auto-tab при достижении MaxLength
XAML:
<TextBox x:Name="MyTextBox"
Text="{Binding Path=MyProperty}"
Style="{StaticResource TextBoxStyle}"
MaxLength="5"
TextChanged="MyTextBox_TextChanged">
</TextBox>
Code-Behind для WPF:
private void MyTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (MyTextBox.Text.Length == MyTextBox.MaxLength)
{
Keyboard.Focus(NextTextBox);
}
}
private void MyTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
// Auto-tab when maxlength is reached
if (((TextBox)sender).MaxLength == ((TextBox)sender).Text.Length)
{
// move focus
var ue = e.OriginalSource as FrameworkElement;
e.Handled = true;
ue.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}
}
}
Вы можете добавить триггер в шаблон управления для сравнения длины, но невозможно перемещать фокус в xaml. Нет ничего плохого в использовании кода. – vorrtex 2010-12-02 22:53:34
Я был бы в порядке, используя код, но я хочу применить его к нескольким представлениям и подумал, что лучше использовать какой-то триггер в стилях. Можете ли вы показать мне пример шаблона управления, который вы бы использовали? – woodyiii 2010-12-03 16:11:04