2011-11-27 6 views
8

Vorrei nascondere diverse caselle di testo, un'etichetta e un pulsante non appena si fa clic su un pulsante ... tuttavia, per qualche motivo, il mio codice non sembra causare questo effetto. Nulla sembra accadere. Sto usando WPF.Come nascondere caselle di testo, etichette e pulsanti C# WPF

Ecco il mio codice:

private void doSomething_Click(object sender, RoutedEventArgs e) 
    { 

     Name.Visibility = Visibility.Hidden; 

    } 

Questo codice non sembra funzionare .. tutte le idee?

+0

cosa fa il tuo codice? nulla? Niente? Hai provato Visibility.Collapsed? Puoi confermare che il tuo codice è stato effettivamente eseguito? - prova a impostare un punto di interruzione o un punto di tracciamento. – ColinE

+0

@CollinE, al momento non fa nulla. Sì, ho messo un break-point e l'ho passato. Passa attraverso ogni riga, ma non succede nulla sul modulo stesso =/Ho provato. Crollato pure. Stesso problema ... – BigBug

+0

che sembra funzionare correttamente ... Stai facendo qualcosa di speciale nel tuo xaml? Puoi pubblicare lo xaml? – wdavo

risposta

7

Il tuo codice sembra funzionare bene, l'etichetta "Accesso in corso ..." appare dopo che tutto il resto scompare. Ti suggerisco di copiare tutto il tuo codice dal file .xaml.cs e il file .xaml in un nuovo progetto, ma assicurati di non copiare la prima riga "<Window x:Class="..." perché potrebbe generare un errore se il nome della classe non è lo stesso nel nuovo progetto.

Per il codice xaml, suggerisco di non pensare lo stesso come si progettano le applicazioni di Windows Form. WPF ha il sistema di layout, che riorienta o ridimensiona i suoi elementi quando ridimensiona la finestra. Quindi non dovresti specificare i numeri esatti nella proprietà del margine come se fossero in coordinate. Crea una griglia, crea righe o colonne per ciascun elemento e poi imposta solo l'allineamento o i margini orizzontali o verticali. Pensa diversamente dalle vecchie finestre.

+0

grazie, lo farò. Sono contento che funzioni ... triste che devo rifarlo di nuovo però ... =/ – BigBug

+0

:(sembra non voler lavorare per me .. anche dopo aver creato un nuovo progetto. – BigBug

7

Credo che Visibility.Collapsed sia quello che ti serve e non lo Visibility.Hidden.

MODIFICA: hai provato a seguire questo codice con il metodo UpdateLayout() dell'elemento padre/componente?

4

Ho eseguito il codice ... e funziona perfettamente per me. Non ho cambiato nulla (tranne i nomi delle variabili) quindi suppongo che sia un bug di VS.

Come detto nikolamm94 provare ad aggiungere this.UpdateLayout(); alla fine di connect_Click potrebbe essere d'aiuto. Ho provato e funziona ancora bene. O forse creare un nuovo VS projet, ha già funzionato per me alcune volte.

dispiace la mia risposta non è il più utile, ho voluto mettere un commento, invece, ma non ho abbastanza reputazione:/

+0

Grazie, proverò questo ... :(fa schifo che devo rifarlo, ma sono contento che funzioni ... spero che sia bello quando lo hai eseguito :) – BigBug

0

È possibile nascondere una casella di testo andando a Properties-> Aspetto-> visibilità, quindi l'impostazione su "nascosto"