Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Apertura a scorrimento [VB.NET]
Forum - C# / VB.NET - Apertura a scorrimento [VB.NET]

Avatar
fabriziorocca (Normal User)
Guru


Messaggi: 1162
Iscritto: 22/03/2009

Segnala al moderatore
Postato alle 22:38
Sabato, 19/12/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


fabriziorocca ha allegato un file: apertura_a_scorrimento.zip (53736 bytes)
Clicca qui per scaricare il file
PM Quote
Avatar
Daniele93 (Normal User)
Expert


Messaggi: 226
Iscritto: 29/05/2009

Segnala al moderatore
Postato alle 0:12
Domenica, 20/12/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
PM Quote
Avatar
fabriziorocca (Normal User)
Guru


Messaggi: 1162
Iscritto: 22/03/2009

Segnala al moderatore
Postato alle 12:41
Domenica, 20/12/2009
Scusate, per aprire il programma bisogna avere collegata al computer una periferica.

Comunque ho caricato il video sul Tuo Tubo

http://www.youtube.com/watch?v=TcBIIG6TuBQ

PM Quote
Avatar
Daniele93 (Normal User)
Expert


Messaggi: 226
Iscritto: 29/05/2009

Segnala al moderatore
Postato alle 16:31
Domenica, 20/12/2009
è decisamente ralizzata con un timer... Ma altrettanto decisamente ti consiglio le WPF

PM Quote
Avatar
fabriziorocca (Normal User)
Guru


Messaggi: 1162
Iscritto: 22/03/2009

Segnala al moderatore
Postato alle 16:35
Domenica, 20/12/2009
A parte le WPF in cui non sono per niente bravo, come faccio a definire al programma come deve espandersi ?

PM Quote
Avatar
Daniele93 (Normal User)
Expert


Messaggi: 226
Iscritto: 29/05/2009

Segnala al moderatore
Postato alle 16:39
Domenica, 20/12/2009
Ad esempio per farlo a tendina:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  2.         If Me.Height < 100 Then
  3.             Me.Height = Me.Height + 10
  4.         Else
  5.             Timer1.Enabled = False
  6.         End If
  7.     End Sub


Ultima modifica effettuata da Daniele93 il 20/12/2009 alle 16:51
PM Quote
Avatar
peteruncle9 (Normal User)
Rookie


Messaggi: 26
Iscritto: 30/05/2009

Segnala al moderatore
Postato alle 23:32
Domenica, 20/12/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

  1. Const FormHeight As Integer = 100
  2. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  3.         If Me.Height < FormHeight Then
  4.             Me.Height = Me.Height + 10
  5.         Else
  6.             Me.Height = FormHeight
  7.             Timer1.Enabled = False
  8.         End If
  9.     End Sub


PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:54
Martedì, 22/12/2009
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

  1. Private WAnim As New DoubleAnimation(1, My.Computer.Screen.PrimaryScreen.Bounds.Width, New Duration(TimeSpan.FromSeconds(4)))
  2.     Private HAnim As New DoubleAnimation(1, My.Computer.Screen.PrimaryScreen.Bounds.Height, New Duration(TimeSpan.FromSeconds(4)))
  3.  
  4.     Private Sub Window1_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
  5.         Me.BeginAnimation(Me.WidthProperty, WAnim)
  6.         Me.BeginAnimation(Me.HeightProperty, HAnim)
  7.     End Sub


Tuttavia avresti ancora il problema di centrare la finestra sullo schermo, e per quello ci vorrebbe comunque un timer, quindi...

PM Quote