
fabriziorocca (Normal User)
Guru
    
Messaggi: 1162
Iscritto: 22/03/2009
|
Ciao genietti, volevo chiedervi come creare un programma che si apra ad apertura a scorrimento proprio come quello nell'allegato.
L'unica cosa che posso immaginare è che ci vuole un timer
|
|

Daniele93 (Normal User)
Expert
    
Messaggi: 226
Iscritto: 29/05/2009
|
La soluzione migliore per la grafica sono le WPF
Altrimenti potresti usare il timer!
P.S. Il programma non funziona...
Ultima modifica effettuata da Daniele93 il 20/12/2009 alle 0:14 |
|

fabriziorocca (Normal User)
Guru
    
Messaggi: 1162
Iscritto: 22/03/2009
|
|
|

Daniele93 (Normal User)
Expert
    
Messaggi: 226
Iscritto: 29/05/2009
|
è decisamente ralizzata con un timer... Ma altrettanto decisamente ti consiglio le WPF
|
|

fabriziorocca (Normal User)
Guru
    
Messaggi: 1162
Iscritto: 22/03/2009
|
A parte le WPF in cui non sono per niente bravo, come faccio a definire al programma come deve espandersi ?
|
|

Daniele93 (Normal User)
Expert
    
Messaggi: 226
Iscritto: 29/05/2009
|
Ad esempio per farlo a tendina:
Codice sorgente - presumibilmente VB.NET |
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If Me.Height < 100 Then Me.Height = Me.Height + 10 Else Timer1.Enabled = False End If End Sub
|
Ultima modifica effettuata da Daniele93 il 20/12/2009 alle 16:51 |
|

peteruncle9 (Normal User)
Rookie
    
Messaggi: 26
Iscritto: 30/05/2009
|
Sicuramente conviene usare WPF: con il timer l'animazione non è fluida per più motivi:
-la finestra aumenta solo al tick del timer
-quando si verifica Timer_tick la finestra si ingrandisce di 10 in 10
-la dimensione della finestra non sarà precisa (Me.height < 100, può essere 101, 102,109 ...)
inoltre correggerei con questo:
Codice sorgente - presumibilmente VB.NET |
Const FormHeight As Integer = 100 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If Me.Height < FormHeight Then Me.Height = Me.Height + 10 Else Me.Height = FormHeight Timer1.Enabled = False End If End Sub
|
|
|

Il Totem (Admin)
Guru^2
    
Messaggi: 3635
Iscritto: 24/01/2006
|
Beh, ma... anche in WPF si usa questo metodo! Si chiama in modo diverso, ma il concetto è sempre lo stesso. Dovrebbe essere qualcosa del genere:
Codice sorgente - presumibilmente VB.NET |
Private WAnim As New DoubleAnimation(1, My.Computer.Screen.PrimaryScreen.Bounds.Width, New Duration(TimeSpan.FromSeconds(4))) Private HAnim As New DoubleAnimation(1, My.Computer.Screen.PrimaryScreen.Bounds.Height, New Duration(TimeSpan.FromSeconds(4))) Private Sub Window1_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded Me.BeginAnimation(Me.WidthProperty, WAnim) Me.BeginAnimation(Me.HeightProperty, HAnim) End Sub
|
Tuttavia avresti ancora il problema di centrare la finestra sullo schermo, e per quello ci vorrebbe comunque un timer, quindi...
|
|