如何阻止(InputScope = Number)文本框在获得焦点时消失?

时间:2013-02-22 19:27:05

标签: c# windows-phone

我已经搜索了其他答案,但没有一个是清楚的。

我有一个问题,每当我点击我将InputScope设置为“数字”的文本框时,数字键盘会出现,但我输入的框会消失..

这是截图和我的代码。 (我也在Windows手机上覆盖了明/暗主题)

   <TextBox InputScope="Number" Height="72" HorizontalAlignment="Left"    

   Margin="159,190,0,0" Name="aTextBox" VerticalAlignment="Top" Width="227"     

   TextChanged="aTextBox_TextChanged" Foreground="Black" BorderThickness="0" 

   Background="White" />

enter image description here

2 个答案:

答案 0 :(得分:1)

您的问题似乎是,当TextBox具有输入焦点时,存在不同的视觉状态,该焦点与您尝试覆盖的手机主题相匹配。如果你想要反对系统主题,你需要重新模板TextBox。

在Blend中,在对象和时间轴窗口中,右键单击 TextBox 并选择编辑模板|编辑副本...

在出现的对话框中,为新样式/模板命名以及在XAML中创建它的位置。点击确定

您现在处于模板编辑模式。 (如果要退出此模式,请单击对象和时间线窗口顶部的返回范围按钮)

enter image description here

点击状态标签(或转到窗口|状态,如果不可见),您可以看到TextBox每种模式的所有不同视觉状态(重点关注) ,没有重点,等等)。当您单击每个时,您将看到设计器中的TextBox发生更改。选择每个状态并将颜色更改为您希望的颜色。

具体来说,请注意在聚焦状态下,TextBox背景默认情况下变为透明。这是你的问题。把它改成你想要的。

最后,我建议您尝试覆盖Windows Phone上的Light / Dark主题,除非您使用自己的品牌/配色方案直接替换它。这是一项很多工作,它可能会让那些习惯于看到他们所选主题的用户感到烦恼和迷惑。

祝你好运!

答案 1 :(得分:0)

试试这样:

<TextBox Text="NumericTextBox">
<TextBox.InputScope>
    <InputScope>
        <InputScopeName  NameValue="Number" />
    </InputScope>
</TextBox.InputScope>