Come cercare ed eliminare i file che occupano più spazio su Android
Come cercare ed eliminare i file che occupano più spazio su Android: Rimuovere i file che occupano spazio sui dispositivi Android.
(altro…)Come cercare ed eliminare i file che occupano più spazio su Android: Rimuovere i file che occupano spazio sui dispositivi Android.
(altro…)Convertitore di Misure in C# – #2 – Debug e Impostazioni WPF: Utilizzo degli strumenti di debug in tempo reale e configurazione interfaccia grafica di Visual Studio per WPF.
Tempo di lettura stimato: 5 minuti
In questo secondo tutorial su WPF ci concentreremo su 2 aspetti:
Oltre a questi 2 aspetti, proseguiremo anche con lo sviluppo del nostro programma andando a scrivere il codice per la conversione delle unità di misura.
Avviando il programma con il tasto verde con scritto Connetti… andremo ad attivare alcuni elementi di debug in tempo reale utili per controllare e modificare gli elementi grafici senza dover chiudere l’applicazione.
Avremo infatti in alto sulla barra del titolo della nostra applicazione alcuni pulsanti utili per il debug.
Il primo ci permette di selezionare gli elementi e di vedere lo spazio che occupano e i loro margini.
Inoltre, grazie al ricaricamento rapido delle modifiche, possiamo fare qualsiasi modifica al codice XAML e vedere in diretta i risultati, senza dover riavviare il debug.
L’interfaccia grafica creata con WPF è di tipo vettoriale, questo significa che gli elementi sono disegnati dalla scheda video e che a qualsiasi risoluzione vengano impostati non perdono mai nitidezza.
Da Visual Studio è possibile regolare il livello di zoom del progetto per andare a vedere nel dettaglio un elemento o allontanare la vista per vedere il risultato d’insieme.
Per le dimensioni reali degli oggetti fare sempre attenzione a controllarli con lo zoom al 100%.
WPF permette anche di visualizzare una griglia di allineamento per poter allineare con maggiore precisione tutti gli elementi grafici, è anche possibile agganciare automaticamente gli elementi alla griglia.
Il tasto converti ha la funzione di leggere il valore inserito nella Textbox di origine, verificare la misura nella Combobox di origine, quella nella Combobox di destinazione e quindi mostrare il valore della conversione nella Textbox di destinazione.
Per fare questo utilizzeremo diverse condizioni, faremo quindi grande uso di If e Switch.
Il codice completo del tasto converti è:
private void btn_Converti_Click(object sender, RoutedEventArgs e)
{
/*
Chilometro = 0
Metro = 1
Decimetro = 2
Centimetro = 3
Millimetro = 4
*/
if (cmb_Origine.SelectedIndex == 0) // Chilometro
{
switch (cmb_Destinazione.SelectedIndex)
{
case 1:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) * 1000);
break;
case 2:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) * 10000);
break;
case 3:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) * 100000);
break;
case 4:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) * 1000000);
break;
default:
txt_Destinazione.Text = txt_Origine.Text;
break;
}
}
else if (cmb_Origine.SelectedIndex == 1) // Metro
{
switch (cmb_Destinazione.SelectedIndex)
{
case 0:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) / 1000);
break;
case 2:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) * 10);
break;
case 3:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) * 100);
break;
case 4:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) * 1000);
break;
default:
txt_Destinazione.Text = txt_Origine.Text;
break;
}
}
else if (cmb_Origine.SelectedIndex == 2) // Decimetro
{
switch (cmb_Destinazione.SelectedIndex)
{
case 0:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) / 10000);
break;
case 1:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) / 10);
break;
case 3:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) * 10);
break;
case 4:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) * 100);
break;
default:
txt_Destinazione.Text = txt_Origine.Text;
break;
}
}
else if (cmb_Origine.SelectedIndex == 3) // Centimetro
{
switch (cmb_Destinazione.SelectedIndex)
{
case 0:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) / 100000);
break;
case 1:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) / 100);
break;
case 2:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) / 10);
break;
case 4:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) * 10);
break;
default:
txt_Destinazione.Text = txt_Origine.Text;
break;
}
}
else if (cmb_Origine.SelectedIndex == 4) // Millimetro
{
switch (cmb_Destinazione.SelectedIndex)
{
case 0:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) / 1000000);
break;
case 1:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) / 1000);
break;
case 2:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) / 100);
break;
case 3:
txt_Destinazione.Text = Convert.ToString(Convert.ToDecimal(txt_Origine.Text) / 10);
break;
default:
txt_Destinazione.Text = txt_Origine.Text;
break;
}
}
else
{
txt_Destinazione.Text = txt_Origine.Text;
}
}
Per poter convertire correttamente i valori dobbiamo prima convertire la stringa di origine in decimale, eseguire quindi l’operazione e convertire il risultato in una stringa.
Un problema che si potrebbe verificare durante l’utilizzo del programma è che l’utente potrebbe selezionare un valore in origine che è già presente in destinazione.
Infatti quando selezioniamo un valore in origine, quello stesso valore viene bloccato nella destinazione, ma se quel valore fosse già selezionato, rimarrebbe comunque selezionato.
Per questo motivo andremo ad aggiungere un if all’evento DropDownClosed della combobox di origine per cambiare l’indice nel caso in cui sia uguale a quello di origine.
if (cmb_Origine.SelectedIndex == cmb_Destinazione.SelectedIndex)
{
if (cmb_Destinazione.SelectedIndex == 0)
{
cmb_Destinazione.SelectedIndex = 1;
}
else
{
cmb_Destinazione.SelectedIndex = cmb_Destinazione.SelectedIndex - 1;
}
}
In questo modo, quando si seleziona l’indice zero, la destinazione se dovesse essere 0 diventerà 1, quando si seleziona qualsiasi altro indice, la destinazione passerà all’indice precedente (quindi se era 4 diventa 3, se era 2 diventa 1).
Imparare a programmare in C++ – #6 – Break e Continue: Queste due istruzioni permettono di uscire anticipatamente da un ciclo al verificarsi di una determinata condizione.
(altro…)5 strumenti online gratuiti per convertire da PDF a Word: Convertire un documento PDF in Docx o Doc permette di renderlo modificabile con Word.
(altro…)Come creare uno scadenzario in Excel: Uno scadenzario permette di tenere traccia di tutte le entrate e le uscite previste.
(altro…)Come trasformare un lettore ottico da interno ad esterno: Utilizzare un lettore ottico interno con cavo USB.
(altro…)Convertitore di Misure in C# – #1 – Introduzione a WPF: Progetto per introdurre all’utilizzo di WPF per lo sviluppo di applicazioni Desktop per Windows in C#.
(altro…)Imparare a programmare in C++ | #5 | Ciclo For e While: I cicli permettono di eseguire una o più istruzioni più volte fino al raggiungimento di una condizione.
(altro…)Correggere estensioni che non si associano su Windows 11: Correzione del bug che non permette di associare un’estensione ad un programma diverso da quello predefinito di Windows 11.
(altro…)Come recuperare le password salvate su Firefox: Mozilla Firefox, come quasi tutti i browser permette di salvare nome utente e password dei siti web visitati per non doverli inserire ogni volta.
(altro…)