我想让我的 Windows 10 通用应用程序中的所有文本框在获得焦点时自动选择所有文本。很像这样here (WPF)。这在 UWP 中可能吗?
最佳答案
我会使用 AttachedProperty
像这样:一个类来保存 bool
类型的属性,并在更改时为焦点事件附加/分离处理程序
public static class TextBoxAttached
{
public static bool GetAutoSelectable(DependencyObject obj)
{
return (bool)obj.GetValue(AutoSelectableProperty);
}
public static void SetAutoSelectable(DependencyObject obj, bool value)
{
obj.SetValue(AutoSelectableProperty, value);
}
public static readonly DependencyProperty AutoSelectableProperty =
DependencyProperty.RegisterAttached(
"AutoSelectable",
typeof(bool),
typeof(TextBoxAttached),
new PropertyMetadata(false, AutoFocusableChangedHandler));
private static void AutoFocusableChangedHandler(
DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if(e.NewValue != e.OldValue)
{
if((bool)e.NewValue == true)
{
(d as TextBox).GotFocus += OnGotFocusHandler;
}
else
{
(d as TextBox).GotFocus -= OnGotFocusHandler;
}
}
}
private static void OnGotFocusHandler(object sender, RoutedEventArgs e)
{
(sender as TextBox).SelectAll();
}
}
用法:XAML
<TextBox Text="Test" local:TextBoxAttached.AutoSelectable="True"/>
编辑
您还可以定义一个默认样式,使您所有的 TextBox
es 都可以自动选择
<Page.Resources>
<Style TargetType="TextBox" >
<Setter Property="local:TextBoxAttached.AutoSelectable" Value="True" />
</Style>
</Page.Resources>
关于c# - 为应用程序中的所有文本框选择 TextBox 中的所有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33681506/