在Windows 8中隐藏TextBox Caret

时间:2012-10-04 11:03:05

标签: c# textbox windows-8 microsoft-metro caret

我有一个TextBox。它将代表一个数字。当我关注它时,我会显示边框,注意它已被选中,我可以在上面写字。我拦截了OnKeyDown事件以更改我按下的数字键的TextBox内容。

我想隐藏插入符号,因为我不希望插入符号“撒谎”,因为我可以在我想要的TextBox中的任何地方写字。

我尝试使用IsReadOnly = true,它隐藏了插入符号。 KeyDown事件继续工作(因为我使用AddHandler函数),但是当我关注TextBox时,触摸键盘不会出现。

我想要隐藏插入符号,但要同时显示触控键盘。

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

不幸的是,在c#/ xaml winRT应用程序下这是不可能的。 仅适用于使用CaretBrush属性的wpf或silverlight应用程序。

Check here for confirmation

答案 1 :(得分:0)

您无法在WinRT / Windows 8中隐藏甚至更改Caret的颜色。您可以更改TextBox本身的背景颜色,但这并不能隐藏Caret。

答案 2 :(得分:0)

我注意到当我给它背景颜色时,光标消失了。虽然这不是我想要的,但它会让光标消失。我在8.1工作。 例如:

<TextBox Style="{StaticResource _textBoxStyle1}" 
Text="{Binding AddRow.Code, Mode=TwoWay}" 
Width="220" 
BorderThickness="0" 
Grid.Column="1" 
VerticalAlignment="Center" 
HorizontalAlignment="Center" 
Margin="10,0" 
Background="#40FFFFFF" 
Foreground="BurlyWood"/>

<Style TargetType="TextBox" x:Key="_textBoxStyle1" >
    <Setter Property="FontFamily" Value="{StaticResource _standardFont}" />
    <Setter Property="FontSize" Value="30" />
    <Setter Property="Height" Value="38" />
    <Setter Property="Foreground" Value="BurlyWood" />
    <Setter Property="Margin" Value="0" />
    <Setter Property="Padding" Value="0" />
</Style>

<x:String x:Key="_standardFont">Arial</x:String>