Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. 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


Si vis pacem, para bellum

Se vuoi la pace, prepara la guerra.
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


Si vis pacem, para bellum

Se vuoi la pace, prepara la guerra.
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


Si vis pacem, para bellum

Se vuoi la pace, prepara la guerra.
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...


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote