Ciao a tutti

volevo cambiare il colore di sfondo di un button
ma se imposto il background, qualsiasi colore io scelga
lo sfondo resta principalmente bianco

esiste qualche impostazione particolare che dovrei disattivare?

c'è una soluzione alternativa?
Ciao, devi modificare lo stile del controllo button

MCTS: Silverlight 4, Development
grazie per la celerità

quindi dovrei creare e assegnare uno style al button diverso
da quello di Default?
esatto, non riesco a postarti il codice perchè sono con il cellulare, comunque se usi blend dovresti riuscire a customizzarlo facilmente
Modificato da Gianluca.Cucco il 10 novembre 2011 09.38 -

MCTS: Silverlight 4, Development
41 messaggi dal 14 ottobre 2010
esempio:

<Button Content="Button">
          <Button.Template>
            <ControlTemplate>
              <Border Background="Red">
                  <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center"></ContentPresenter>       
          </Border>        
        </ControlTemplate>       
      </Button.Template>
</Button>

Il libro su Silverlight in italiano:
Silverlight 4 - Guida Alla Programmazione
perfetto però

ammettiamo che adesso vorrei applicare una
coloranimation
cosa metto come
target
e
targetproperty

????????
ok ho risolto cosi

<UserControl.Resources>
<Style TargetType="Button" x:Key="ButtonStyle">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button" >
<Grid>
<Rectangle Fill="{TemplateBinding Background}" Cursor="Hand" />
<TextBlock Cursor="Hand" Foreground="{TemplateBinding Foreground}" Text="{TemplateBinding Content}" HorizontalAlignment="Center" Margin="0,7,0,0"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>

cosi facendo cambiando il background del button mi cambia il riempimento
e infine

Private Sub button_hover(ByVal sender As Button, ByVal e As System.Windows.Input.MouseEventArgs) Handles _
btn_home.MouseEnter, _
btn_chi.MouseEnter, _
btn_contatti.MouseEnter, _
btn_dove.MouseEnter, _
btn_prodotti.MouseEnter
Dim s1 As New Storyboard
Dim r As Byte = System.Convert.ToByte("31", 16)
Dim g As Byte = System.Convert.ToByte("39", 16)
Dim b As Byte = System.Convert.ToByte("A0", 16)
Dim animacolor1 As New ColorAnimation
animacolor1.To = Color.FromArgb(255, r, g, b)
animacolor1.Duration = TimeSpan.FromMilliseconds(700)
Storyboard.SetTarget(animacolor1, sender.Background)
Storyboard.SetTargetProperty(animacolor1, New PropertyPath("(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)"))
Dim animacolor2 As New ColorAnimation
animacolor2.To = Colors.White
animacolor2.Duration = TimeSpan.FromMilliseconds(700)
Storyboard.SetTarget(animacolor2, sender)
Storyboard.SetTargetProperty(animacolor2, New PropertyPath("(Control.Foreground).(SolidColorBrush.Color)"))
s1.Children.Add(animacolor1)
s1.Children.Add(animacolor2)
s1.Begin()
End Sub

e poi al MouseLeave torna normale

com'è?
Modificato da darkeric il 10 novembre 2011 22.06 -
41 messaggi dal 14 ottobre 2010
sarebbe meglio definire uno stile, in maniera da poterlo riutilizzare per tutti i pulsanti che vuoi.
Se usi blend come già suggerito è semplice definire anche le animazioni per i diversi stati del pulsante

Normal
MouseOver
Pressed
...

direttamente in XAML, senza necessità di gestire alcun evento.

Qui trovi lo stile e il template predefinito di un Button, da cui puoi partire per le tue personalizzazioni.

http://msdn.microsoft.com/en-us/library/cc278069(v=vs.95).aspx

Il libro su Silverlight in italiano:
Silverlight 4 - Guida Alla Programmazione

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.