Login Register
martedì 7 febbraio 2012
 
Forums
I Forum di WPF Tips & Tricks
Applicare o modificare bitmapeffect a runtime
Last Post 27 gen 2010 03:17 by SaRtO. 4 Replies.
Printer Friendly
Sort:
PrevPrev NextNext
You are not authorized to post a reply.
Author Messages Resolved
hidden
Basic Member
Basic Member
Posts:45
Avatar

--
24 nov 2009 09:24  
Salve ragazzi volevo chiedere delle informazioni che al momento non sono riuscito a trovare. Mio codica XAML
Ho creato un button e gli ho aggiunto un effetto come mostro qui sotto:

<Button Height="49.147" Margin="122.451,0,0,0" Name="Button1" VerticalAlignment="Bottom">
<Button.BitmapEffect >
<BevelBitmapEffect BevelWidth=" 10" EdgeProfile="Linear" LightAngle=" 15" Smoothness=" 100" ></BevelBitmapEffect>
</Button.BitmapEffect>
</Button>

La cosa che vorrei capire è come posso fare a modificare gli effetti a runtime.
Cioè come posso fare per aggiungere o rimuovere l'effetto oppure modificarlo a runtime?

Per esempio vorrei che allo scatenarsi di un certo evento es. MuoseLeave o MouseUp la proprietà BevelWidth del mio bitmapeffect cambi da 10 a 50 o viceversa.
Come lo si può fare da codice, nel mio caso Vb.

Grazie per il vostro aiuto
Luigi
Basic Member
Basic Member
Posts:20
Avatar

--
24 nov 2009 09:47  
Secondo me la strada da intraprendere è quella dei Triggers.
Io per fare una cosa più o meno simile al tuo caso mi sono creato uno stile applicato a tutti i pulsanti, in questo stile, nella sezione ControlTemplate, ho aggiunto i triggers relativi al comportamento/aspetto da assumere durante, ad esempio, il mouseover o pressed o IsEnabled a false.

Fai una ricerca relativamente all'uso degli stili e dei Triggers.

Un esempio semplice, non relativo al tuo caso ma come base di partenza, è il seguente dove il testo del pulsante diventa rosso, bold e con font 20 quando il mouse è sopra di lui:

<Button VerticalAlignment="Top" Content="Button" Margin="191,59.96,272,0" Height="50">
<Button.Resources>
<Style x:Name="ButtonStyle" TargetType="{x:Type Button}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Red"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="FontSize" Value="20"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Resources>
</Button>

Considera che i risultati migliori li ottieni creando un tuo stile da applicare a tutti i controlli e non direttamente cambiando lo stile di un singolo controllo, come fatto nell'esempio.

Ciao.

P.S. Per quanto riguarda la possibilità di cambiare una proprietà di BevelBitmapEffect non ho mai provato ma penso che il procedimento sia lo stesso, prova a dare un nome all'effetto e poi a cambiare una sua proprietà usando il Setter con TargetName:

<Setter TargetName="NomeDell'Effetto" Property="Nome Proprietà da cambiare" Value="valore" />

(Spero di non aver sbagliato qualche cosa )
Ri-Ciao.
Alessandro Del Sole [MVP]
Team
Team
Posts:121
Avatar

--
24 nov 2009 09:33  
Esatto, Luigi, la strada giusta è quella dei Trigger per condizionare le animazioni lato XAML. Per farlo lato codice managed, invece, si può ricorrere agli eventi assegnando preventivamente dei nomi alle animazioni e alle loro proprietà.

Alessandro Del Sole (WPF T&T Team)
Microsoft MVP - Visual Basic: Development
http://community.visual-basic.it/Alessandro
hidden
Basic Member
Basic Member
Posts:45
Avatar

--
25 nov 2009 10:46  
Grazie per i vostri consigli ora proverò su google a fare una ricerca su come creare e utilizzare stili e triggers. In quanto ne avevo sentito parlare ma sono praticamente a digiuno anzi totalmente vuoto in merito.
Grazie
SaRtO
Basic Member
Basic Member
Posts:24
Avatar

--
27 gen 2010 03:17  
Questo è un semplicissimo codice di runtime in VB per quanto richiesto nel primo messaggio:

' dichiaro una variabile dicendo che si tratta di un BevelBitmapEffect
Dim ciccio As BevelBitmapEffect = New BevelBitmapEffect

'assegno il valore with alla variabile sopra dichiarata
ciccio.BevelWidth = 50

'assegno l'effetto all'oggetto Button1
Button1.bitmapeffect = ciccio


Se lo guardi bene vedi che è semplicissimo e di conseguenza potrai utilizzarlo per tutti i tuoi oggetti.
You are not authorized to post a reply.

Active Forums 4.2
  
hd porn
 
© 2009-2011 WPF Tips&Tricks Team - Visual Basic Tips&Tricks Network
 
porno izleporno izle