我正在将现有的Windows控件转换为UWP。我看不到在UWP的TextBox控件中具有下划线字体样式的方法。
我缺少基本的东西吗?还是我应该忘记TextBox并使用RichEditBox(对我而言,这太过大了)?
谢谢!
答案 0 :(得分:0)
您可以尝试将边框添加到默认样式中,但是我认为这会很困难,您现在可以使用RichEditBox,同时通过创建新的样式资源来覆盖默认样式,我知道RichEditBox不是设计用于接受来自用户的输入,但是我认为它对性能https://docs.microsoft.com/en-us/windows/uwp/design/controls-and-patterns/text-controls
不会有太大影响答案 1 :(得分:0)
我缺少基本的东西吗?还是我应该忘记TextBox并使用RichEditBox(对我而言,这太过大了)?
您可以使用Windows.UI.Text.Core名称空间中的核心文本API来创建自己的自定义输入控件。
您只需要使用一些通用的UWP控件(例如,文本块,堆栈面板,边框等)来制作一个输入控件(您可以将其称为自己的自定义文本框),当您在其中输入文字时,该控件就会带有下划线。
这里是UWP官方Custom Edit Control sample。我只是在'CustomEditControl.xaml'中为TextDecorations
指定了TextBlock
属性值,然后就实现了目标。
<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>