更改文本框的前景文本

时间:2014-12-21 21:06:42

标签: c# xaml windows-store-apps

我正在使用Visual stuio 2013专业版在C#和XAML(而不是WPF)中创建Windows应用商店。

我已经有一个if语句,所以程序将能够执行此功能

if (TextBoxForRainbow.Text=="rainbow" || TextBoxForRainbow.Text=="Rainbow")
{
    RainbowButton.Opacity = 100;
}

我已经探索过以下方法: TextBoxForRainbow.Foreground = new SolidColorBrush(颜色:"红色");但无济于事 我发现这个方法的链接是Programmatically set TextBlock Foreground Color

是否需要插入特定的命名空间或引用来实现此功能?

我想要的是当用户在texbox中输入正确的文本时,在这种情况下是彩虹'我希望文本变成绿色。

1 个答案:

答案 0 :(得分:0)

在您的示例中,您提到您尝试了

TextBoxForRainbow.Foreground new SolidColorBrush(color: "red"); 

这不会奏效,SolidColorBrush的构造函数需要Color,而不是字符串。

这是我的改编示例:

<强> XAML

<StackPanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
  <TextBox x:Name='TextBoxForRainbow'
            TextChanged='TextBoxForRainbow_TextChanged'
            Text='Demo' />
</StackPanel>

<强>代码

private void TextBoxForRainbow_TextChanged(object sender, TextChangedEventArgs e) {
  if (String.Equals(TextBoxForRainbow.Text, 
                    "rainbow",
                     StringComparison.CurrentCultureIgnoreCase))
  {
    TextBoxForRainbow.Foreground = new SolidColorBrush(Windows.UI.Colors.Green);
  }
} 

Screenshot