比较字符串与背景颜色

时间:2015-02-27 03:30:56

标签: c# wpf windows store

private void Button_Click(object sender, RoutedEventArgs e){
    Button btn = (Button)sender;
    if(/*insert if condition here*/)
    {
        cntr = 1;
        void1();
    }
}

我目前正在开发一个C#Windows商店应用。 我有一个TextBlock,可以有红色,橙色,黄色,绿色,蓝色,靛蓝色或紫罗兰色的文本。我还有七个不同背景颜色的按钮。现在,我想检查我的TextBlock的文本是否与点击的按钮的背景颜色相匹配。

5 个答案:

答案 0 :(得分:0)

尝试btn.BackColor.ToString()== textblock.Text进行比较

答案 1 :(得分:0)

所以我做了一个快速的程序,看看这是否会起作用。只需按照说明进行更改即可。当你查看这段代码时,只做一件事。尝试并了解每条线路的作用。

    private void btn2Control_Click(object sender, EventArgs e)//This button color is Control
    {
        if (label1.BackColor == button2.BackColor)//You are going to want to substatut your label name for label1
        {
            Console.WriteLine("Here");//This was just to make sure the program did match the colors
        }
    }

    private void btn1Yellow_Click(object sender, EventArgs e)//This button color is Yellow
    {
        if (label1.BackColor == button1.BackColor)
        {
            Console.WriteLine("Here");
        }
    }

答案 2 :(得分:0)

由于您使用的是WPF,因此需要使用以下属性

我不打算编写逻辑,因为它不是你要真正想要的,但是你需要做的是在TextBLock中应用当前的前景颜色并将其与使用上述属性点击按钮Background

ex:IF比较的代码

 if(TextBlock.Foreground == btn.Background){
      // Color matching
      // Do things here
  }

答案 3 :(得分:0)

  private void Button_Click(object sender, RoutedEventArgs e){
    Button btn = (Button)sender;
    if(button.Background == textBlock.TextBlock)
    {
        cntr = 1;
        void1();
    }
}

答案 4 :(得分:0)

使用 BrushConverter 实例将文本块的文本转换为画笔对象,然后将该画笔与按钮的背景进行比较。

一些示例XAML:

<StackPanel>
    <TextBlock x:Name="MyTextBlock" Text="Red" />
    <Button Content="Blue" Background="Blue" Click="OnColorButtonClick" />
    <Button Content="Red" Background="Red" Click="OnColorButtonClick" />
    <Button Content="Green" Background="Green" Click="OnColorButtonClick" />
    <Button Content="Yellow" Background="Yellow" Click="OnColorButtonClick" />
</StackPanel>

...和按钮处理程序代码(请注意,示例中的所有按钮都使用相同的单击处理程序):

private void OnColorButtonClick(object sender, RoutedEventArgs e)
{
    var converter = new BrushConverter();
    var textblockBrush =
        converter.ConvertFromString(MyTextBlock.Text) as Brush;
    var button = (Button) sender;
    if (button.Background == textblockBrush)
    {
        // text of my TextBlock matches the backgound color of the Button clicked
    }
}