Linguaggio C#

intendi questo:

https://wpf-tutorial.com/it/4/per-iniziare/ciaowpf/

No, l ho già seguito. Mi servirebbe un percorso più strutturato.
A meno che non si ragiona insieme sulla lezione di Camuso. Vi va? Può interessare qualcuno?

PS per chiarire: realizzare app desk oltre a servirmi per lavoro può servire per collegarmi tramite plugin a GH. Vorrei sfruttare le librerie di matematica e fisica di C# per una sinergia con GH.

su Camuso di quale lezione parli?
lo scopo quale sarebbe e cosa
dovrebbe fare il programma?

Per imparare posso seguire qualsiasi tutorial, non devo necessariamente fare un programma personale.

WPF è molto simile alla struttura dei file html. E’ composto da 2 tipi di file: uno con struttura x(a)ml dove gli elementi vengono definiti con la classica struttura <button>… </button> oppure <button … /> e un file *.cs dove definisci il codice. La struttura di una finestra segue una logica “semplice”: finestra (window), contenitori (griglie,panel ecc.) e al loro interno si inseriscono gli elementi tipici (button, textbox, canvas ecc.). Ogni elemento ha proprietà, metodi ed eventi. Nel file .xaml agli oggetti aggiungi SOLO la dichiarazione degli eventi: click, mousemove mouseleave ecc.; e non il codice che verrà aggiunto nel rispettivo file *.cs. In sostanza nel file .xaml definisci la parte visiva mentre nel file .cs il codice.
Alcuni oggetti visivi non richiedono la gestione degli eventi. Ad esempio le etichette che descrivono il contenuto di un textbox.
Di certo ad un pulsante (Button) associ un evento, di norma il click
del mouse.
All’interno del file xaml inserisci il bottone in questo modo:
<Button Name=“BtSomma” OnClick=“Somma” … />
Immagina di aver inserito tre textbox
<TextBox Name=“txtValore1” …/>
<TextBox Name=“txtValore2” …/>
<TextBox Name=“txtSomma” … />

La proprietà Name è un valore univoco che identifica un elemento.
E’ buona norma scegliere una codifica per capire il tipo di oggetto:
solitamente io associo a txt per identificare le textbox, bt per i pulsanti ecc…

Nel file .cs inserisci il codice

private void Somma(sender object, RoutedEventArgs e)
{
txtSomma.text=(double)txtValore1.text+(double)txtValore2.text;
}

Non so se funziona il cast …

Ovviamente la funzione somma dovrà essere inserita all’interno
del namespace della finestra (window) che contiene le entità chiamate (txtSomma, txtValore1, txtValore2).

Con visual studio le cose sono molto semplici perché puoi inserire
gli oggetti trascinandoli all’interno della window e nel panel proprietà
definisci le caratteristiche di ogni elemento. Inoltre, definito un evento, nel file *.cs verrà generata il testo base della funzione a cui basterà aggiungere il codice.
Bisogna mettersi di buona volontà e imparare passo passo partendo con semplici interfacce fino a definire interfacce complesse come quella di visual studio. Solo con la pratica si acquisisce padronanza. La cosa più ostica è il ridimensionamento della finestra dove l’utente finale si attende che ci sia un ridimensionamento automatico di tutti gli elementi presenti nella finestra. Ai miei tempi (20 e + anni fa) si scriveva tutto a mano. Adesso è tutto più semplice.

2 Mi Piace

Ho fatto tutto quanto scrivi e creato una interfaccia stile web (un header, due colonne centrali ed un footer), ma già questo non è proprio semplice: quando trascini gli oggetti sulla finestra VS ti mette il codice in modo approssimativo e complicando un po’ la finestra occorre spostare a mano il codice done è opportuno che stia.

La parte grafica, allo stato attuale mi da qualche problema (posterò le immagini).

La cosa per me più complicata adesso è capire bene il pattern di sviluppo con le interfacce.
Farò altra pratica, ma capisco che sbloccando alcune cose si viaggia.

Il passaggio successivo è: cosa usare per disegnare complessi grafici di funzioni 3D ( tipo tabelle termodinamiche) e 2D per i punti di funzionamento.

Poooi (eh perché li vogliamo arrivare): come avvio il form da GH? Ho letto qualcosa, ma vedrò con calma più avanti.

Ciao Luca

io preferirei scrivere il codice (ma non lo faccio da anni).
Relativamente alla grafica la cosa inizia ad essere più
tosta. Se si tratta si costruire grafici potrebbe essere
sufficiente usare gdi+ senza scomodare opengl o directx
programmando te la vista assonometrica se necessaria.
Cerca c# gdi+

Relativamente all’avvio di un form da Gh non saprei. Per
logica dovrai definire una classe form personalizzata
con metodi pubblici che ti consentono di interagire
trasmettendo i dati da rappresentare ecc…

Adesso vedo.
Pensavo a https://scottplot.net/, https://plotly.net/ e simili, non so se con Unity potrei anche.

Si. E’ pure open source.

Eh si infatti

Si, Sergino… ti ho visto bello impegnato durante le feste :smile:

tra i fornelli…:drooling_face:

Anche ieri sera … :sunglasses:

Ho visto anche nuove reclute!!! Bene “istruite”… :wink:

1 Mi Piace

Aggiornamento: