Windows Phone 7 (WP7) Cambia il colore di sfondo di un pulsante al clic

Questo sembra un problema davvero molto semplice, ma non riesco a capirlo. Il colpevole sembra essere lo stile predefinito di WP7. Cambia il colore dello sfondo in bianco quando viene cliccato un pulsante, quindi torna allo sfondo predefinito del pulsante.

Il problema che ho è che voglio cambiare lo sfondo del pulsante quando si fa clic sul pulsante. Non riesco a trovare alcun modo ansible per farlo.

Ho provato a impostare lo sfondo nel codice, ma questo non fa nulla. Penso che venga sovrascritto dallo stile predefinito.

Ho provato a utilizzare un comportamento di modifica delle proprietà in Blend, ma questo ha lo stesso risultato esatto.

Ho provato a creare un nuovo stato visivo per il pulsante e ad impostarlo su clic, ma è un po ‘buggato e ha un grande sovraccarico per il numero di pulsanti con cui ho a che fare. Inoltre, non ha funzionato.

Posso impostare lo sfondo di altri pulsanti su un evento click, ma semplicemente non si fa clic sul pulsante.

Questo è un ostacolo così fastidioso! Sono sicuro che questa è una linea di codice di risposta. 🙂

Quello che devi fare è creare un modello di pulsante che modifichi lo stato visivo premuto.

In blend, seleziona il tuo pulsante, fai clic sulla voce di menu “Oggetto” -> “Modifica modello” -> “Modifica una copia …” e viene creato un nuovo modello. Nella finestra Stati, selezionare lo stato visivo premuto nel gruppo di stato visivo CommonStates. Ora seleziona ButtonBackground nella gerarchia degli oggetti e modifica il pennello di sfondo nella finestra Proprietà.

Ho modificato lo sfondo dello stato Premuto per essere un solido colore Cyan-ish e ho trovato qualcosa di simile a questo XAML.

        

Penso che ottenere un riferimento allo sfondo reale, quindi cambiare che potrebbe aiutare. Ecco un metodo che prenderà un esempio di un pulsante.

  private void HighlightButton(Button btnToHighlight) { SolidColorBrush sBrush = (SolidColorBrush)btnToHighlight.Background; sBrush.Color = //enter your colour here btnToHighlight.Background = sBrush; } 
                              

Per cambiare lo sfondo del pulsante quando viene premuto il pulsante, utilizzo i modelli. Come Matt ha sottolineato, apri il progetto in Blend. Vai al pulsante> Fai clic con il pulsante destro> Modifica modello> Modifica una copia. Un nuovo modello per il tuo pulsante verrebbe creato e aggiunto all’inizio della tua pagina XAML.

Ora dal momento che è necessario modificare il comportamento dei pulsanti quando si preme il pulsante, è necessario modificare VisualState. Dirigetevi verso lo stato visivo “Pressato” e scrutatelo. Questo è lo stato visivo “Pressato”.

             

Cambia il valore di # FF373737 in tutto ciò che desideri. Ora sei impostato.