Я что-то упустил? Или я должен забыть TextBox и использовать RichEditBox (что будет большим перерасходом для моих целей)?
Вы можете использовать основные текстовые API в пространстве имен Windows.UI.Text.Core , чтобы создать свой собственный элемент управления вводом.
Вам просто нужно использовать какой-то общий элемент управления UWP (например, текстовый блок, панель стека, границу и т. Д.), Чтобы создать элемент управления вводом (вы можете назвать его собственным настраиваемым текстовым полем), который подчеркивается при вводе текста в нем.
Вот официальный пример UWP Пример пользовательского элемента управления для редактирования . Я только что указал значение свойства TextDecorations
для TextBlock
в 'CustomEditControl.xaml', затем я достиг вашей цели.
<StackPanel x:Name="BorderPanel" BorderThickness="4" Background="White">
<StackPanel x:Name="ContentPanel" Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock x:Name="BeforeSelectionText" Foreground="Black" TextDecorations="Underline"/>
<TextBlock x:Name="CaretText" Text="" Foreground="Blue" FontFamily="Segoe UI Symbol"/>
<Border Background="Blue">
<TextBlock x:Name="SelectionText" Foreground="White"/>
</Border>
<TextBlock x:Name="AfterSelectionText" Foreground="Black"/>
</StackPanel>
</StackPanel>