2017-01-09 19 views
0

問題があります。私は、ボタンの背景色をユーザーがクリックしたときの色を設定する方法を知っています。 Code ImageC#UWPのボタンの背景色

button.Background = new SolidColorBrush(Colors.Blue); 

ユーザーは再びそれをクリックした場合しかし、それは、ボタンのデフォルトの色を変更します。ボタンの背景色を押さえたいのですが。

if(button.Background != (SolidColorBrush)(Colors.Blue)) 
{ 
    //code 
} 
+0

コードを表示できますか? – Thili77

+0

'(SolidColorBrush)(Colors.Blue)'はコンパイルしないでください。 –

+0

https://i.stack.imgur.com/DZfdA.png 私を助けることができますか? –

答えて

0

私はこのコードをUWPアプリケーションで動作させるためにテストしました。

if (!toggle) 
     { 
      x = (SolidColorBrush)backButton.Background; 
      backButton.Background = new SolidColorBrush(Colors.Blue); 
      toggle = true; 
     } 
     else 
     { 
      backButton.Background = x; 
      toggle = false; 
     } 

最初に、トグルの値は、偽(またはロジックに基づいて真)でなければなりません。

EDIT

 SolidColorBrush originalBrush; 
     SolidColorBrush newBrush = new SolidColorBrush(Colors.Blue); 
     private void backButton_Click(object sender, RoutedEventArgs e) 
     { 
      if ((SolidColorBrush)backButton.Background==newBrush) 
      { 
       backButton.Background = originalBrush; 
      } 
      else 
      { 
       originalBrush = (SolidColorBrush)backButton.Background; 
       backButton.Background = newBrush; 

      } 
     } 

また、あなたが使用して多くのボタンを使用している場合:あなたはこのコードを使用することができ、ボタンの色を更新する前に、背景ブラシをチェックする必要がある場合には

同じカラーToggleButtonを使用して同じことを達成できます。

+0

しかし、どこにトグルを保存しますか?複数のボタンの場合は? –

+0

トグルはブール変数です。クラスレベルで定義できます。 複数のボタンが同じことをする場合、またはボタンの背景色が 'x' SolidColorBrush以外のものであるかどうかを確認し、それに応じて変更することができます。 – Pratyay

+0

しかし、if(... == Background) '問題の核心である。 –

関連する問題