mercoledì 15 marzo 2023

HTML5 game engine componente gratuito per creazione di video giochi

 

MelonJs è un componente gratuito per la creazione di video giochi in ambito web.

Il componente è un Game engine in Javascript per facilitare lo sviluppo di video giochi.

Per maggiori informazioni e download visitate il seguente sito https://github.com/melonjs/melonJS 

martedì 14 marzo 2023

.Net Componente gratuito per la gestione e creazione dei file pdf QuestPDF



QuestPdf è un componente gratuito ed open source https://www.questpdf.com/ con il quale realizzare file pdf.
Il componente inoltre permette durante la stesura del codice, l'anteprima di come verrà realizzato il file, sul repository GIT, qui https://github.com/QuestPDF/QuestPDF è possibile consultare il sorgente e qualche frammento di codice di utilizzo, mentre qui https://www.questpdf.com/quick-start la possibilità di consultare la guida.

Un componente molto interessante e potente.

lunedì 13 marzo 2023

Estrapolare il testo dai video freesubtitles

Altro interessante strumento online quello offerto dal sito Freesubtitles, qui https://freesubtitles.ai/ il sito, che offre la possibilità di impostare i sottotitoli ad un video caricato ed estrapolare dal video il testo in diverse lingue.
Il download del file (in vari formati tra cui anche il testo) è gratuito e non richiede nessuna registrazione o email. 
Ottimo strumento online.

domenica 12 marzo 2023

Il provider 'DB2OLEDB' non è registrato nel computer locale.

Quando si realizzano applicazioni .Net con l'utilizzo di database DB2, durante l'esecuzione del progetto mentre si effettua la connessione al database, può verificarsi l'errore di "Il provider 'DB2OLEDB' non è registrato nel computer locale.". Questo è dovuto al fatto che sul pc non è installato il provider, ossia i file che permettono di collegarsi al database "DB2".

La soluzione è quella di installare il provider, dal seguente sito https://www.microsoft.com/it-IT/download/details.aspx?id=100917 selezionando se la macchina è a 32 o 64 bit.



sabato 11 marzo 2023

sito di immagini creati tramite intelligenza artificiale playgroundai

 


In questi ultimi mesi molti i siti sulla creazione delle immagini tramite intelligenza artificiale.

Il sito PlayGroundAI, visibile qui https://playgroundai.com/ sfrutta l'intelligenza artificiale per creare immagini, che si possono scaricare gratuitamente senza registrazione e senza lasciare email.

Il sito è in lingua inglese e facilmente utilizzabile.


venerdì 10 marzo 2023

Lista antivirus gratuiti

Di seguito una lista di alcuni antivirus gratuiti, si consiglia sempre di installare un solo antivirus e tenerlo aggiornato.


Avira https://www.avira.com/it/downloads (sezione per la casa, e ci sono anche versioni per il Mac)


giovedì 9 marzo 2023

Download gioco Call of the Sea

 



Call of the Sea è un gioco in lingua italiana di avventura con una grafica molto ben fatta.

Il gioco è gratuito e senza limitazioni per sistemi operativi Windows, fino al 16 marzo 2023 si potrà scaricare gratuitamente, dopo tale data il download sarà a pagamento.

Per maggiori informazioni e download visitare il seguente sito Call of the Sea | Acquistalo e scaricalo subito sull'Epic Games Store 

Download ebook Blazor WebAssembly

 

Disponibile gratuitamente un ebook di circa 100 pagine in formato pdf o per dispositivi mobile, sulla programmazione Blazor.

L'ebook è in lingua inglese con diversi esempi di codice.

Per maggiori informazioni e download, visitate il seguente sito https://www.syncfusion.com/succinctly-free-ebooks/blazor-webassembly-succinctly

mercoledì 8 marzo 2023

Componente gratuito .Net per la gestione Bluetooth, Irda, NFC

Il componente gratuito 32Feet.Net  https://inthehand.com/components/32feet/ permette la gestione delle comunicazioni tramite Nfc, Bluetooth e irda nella tecnologia .Net.
Qui https://github.com/inthehand/32feet è possibile consultare il progetto open source in Git e le indicazioni sull'utilizzo e l'aggiunto a progetti .Net.

martedì 7 marzo 2023

Download gioco PUBG BATTLEGROUNDS

 


Disponibile gratuitamente il gioco di combattimento Pubs Battlegrounds,  con una buona giocabilità ma soprattutto una grafica molto accattivante.

Il gioco in lingua italiana è per sistemi operativi Windows.

Per maggiori informazioni e download visitate il seguente sito PUBG: BATTLEGROUNDS | Scaricalo e gioca gratuitamente sull'Epic Games Store

C# Creazione di barcode con Zxing tramite Windows Application




In questo articolo vedremo come creare i barcode tramite la libreria Zxing con la tecnlogia .Net 4.7 tramite il linguaggio di programmazione C# e l’ambiente di sviluppo Visual Studio 2019 Community.
L’articolo vuole fornire informazioni utili sulla gestione e creazione dei codici di tipo barcode, in particolare dotare le proprie applicazioni di tipo “App Windows” per la creazione dei codici a Barra e visualizzarli nella form oltre a salvare il file Barcode generato, e visualizzare il testo del codice a barre tramite la libreria ZXing.
Vedremo come creare e leggere codici barcode generando file immagini.


Creazione del progetto

Dopo aver aperto Visual Studio 2019, si crea un nuovo progetto di tipo “App Windows Forms (.Net Framework)” selezionando la versione del Framework 4.7. Dopo aver creato il progetto, assegnando il nome e percorso dove salvarlo, nella form inseriamo due controlli di tipo “casella di sto”, una con la proprietà “Name” impostata con il valore “TxtTesto” e l’altra con il valore “TxtPercorsoFile”, inseriamo un controllo di tipo Picturebox, che permetterà di visualizzare il barcode generato, e tre pulsanti, uno sotto la prima casella con la proprietà name impostato su “BtGenera”, con il quale andremo a generare il codice barcode dalla prima casella di testo. Un altro pulsante con la proprietà impostata name impostata su “btnCerca” al fianco della seconda casella di testo, che permetterà di aprire una finestra per la selezione del file immagine con il barcode, ed un pulsante con la proprietà name impostata su “BtnLeggi” sotto la seconda casella di testo per estrapolare il testo presente nel file immagine del barcode, il tutto come riportato in fugura 1.

Figura 1 – I controlli e la prova della generazione del barcode


Terminata la creazione della nostra schermata, con il posizionamento dei vari controlli, non resta che scrivere il codice per la creazione del barcode.

Stesura del codice

Prima di scrivere il codice, tramite nuget, occorre aggiungere la libreria “Zxing” che permette la creazione di QrCode e barcode, oltre ad altre interessanti funzionalità.
Tramite la gestione dei pacchetti di “Nuget” (Strumenti->Gestione Pacchetti Nuget->Gestione Pacchetti NuGet per la soluzione) digitiamo il componente “Zxing” e selezioniamo quello con il nome “Zxing.Net” con oltre 11 milioni di download e versione 0.16.8 nel momento in cui si sta scrivendo l’articolo, il tutto come mostrato in figura 2.




Figura 2 – Il componente Zxing.net da aggiungere al progetto

Dopo aver aggiunto il componente, passiamo in visualizzazione codice, in alto, sopra ad ogni dichiarazione aggiungiamo lo spazio dei nomi relativo a questa libreria.
Di seguito si riporta il frammento di codice delle suddette operazioni

C#

using ZXing;


Ritorniamo in visualizzazione grafica della nostra form, e sul primo pulsante, quello con la dicitura “Genera”, facciamo doppio click in modo da passare in visualizzazione codice nell’evento “Click” del pulsante.
Tramite la classe “BarcodeWriter” , impostando alcune proprietà come il tipo di barcode e le dimensioni, possiamo generare il codice a barre da un testo, utilizzando il metodo “Write”, una volta ottenuto un oggetto di tipo “Bitmap” lo visualizziamo in un controllo pictureBox, e  tramite un oggetto di tipo “BitMap” possiamo salvarlo in una determinata cartella, passando percorso e nome file, ed il formato immagine.
Qui di seguito il frammento di codice delle suddette operazioni nell’evento click del pulsante.


C#

private void BtnGenera_Click(object sender, EventArgs e)

        {

            try

            {

                BarcodeWriter BarcodeCreazione = new BarcodeWriter {

                    Format = BarcodeFormat.CODE_128,

                    Options = { Height=100, Width = 400}

                };

                var risultato = BarcodeCreazione.Write(TxtTesto.Text);

                var barcodeBitmap = new Bitmap(risultato);

                pictureBox1.Image = barcodeBitmap;

                barcodeBitmap.Save(@"C:\Varie\barcodeGenerato.Jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);

             

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }




Dopo aver scritto il codice, non resta che eseguirlo per verificare il funzionamento, cambiando il percorso del salvataggio dell’immagine, in una cartella esistente.
Accertato il corretto funzionamento, ritorniamo in visualizzazione grafica, e facciamo click sul pulsante dei tre punti, quello al fianco alla seconda casella di testo, che permetterà di aprire una finestra per la selezione del file.
Di seguito si riporta il codice delle suddette operazioni.

C#

private void BtnCerca_Click(object sender, EventArgs e)

        {

            OpenFileDialog openDlg = new OpenFileDialog();

            openDlg.Title = "Trova immagine Barcode";

            if (openDlg.ShowDialog()== DialogResult.OK)

            {

                TxtPercorsoFile.Text = openDlg.FileName;

            }

 

 

        }


Torniamo in visualizzazione grafica e facciamo doppio click sul pulsante denominato “Leggi” in modo da passare in visualizzazione codice dell’evento “click” del pulsante”.
Tramite il metodo “Decode” della classe “BarcodeReader”, leggendo lo stream dal file immagine, viene rilevo il testo presente nell’immagine del codice a barre.
Di seguito si riporta il codice dell’evento click del pulsante delle suddette operazioni.


C#

private void BtnLeggi_Click(object sender, EventArgs e)

        {

            try

            {

                BarcodeReader BarcodeLettura = new BarcodeReader();

                var barcodeBitmap = (Bitmap)Image.FromFile(TxtPercorsoFile.Text);

                

                var testoRilevato = BarcodeLettura.Decode(barcodeBitmap);

               

                if (testoRilevato != null)

                {

                    TxtTesto.Text = testoRilevato.Text;

                }

 

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }









Ora non resta che eseguire il codice per verificare il funzionamento del codice e selezionare il file immagine di un barcode, eventualmente creato in precedenza.

Conclusioni

L’articolo ha fornito al lettore la possibilità di avvicinarsi alla gestione dei codice a barre, e dotare le proprie applicazioni della creazione e letture dei barcode.
La libreria Zxing, offre potenzialità nella gestione dei codice a barre e nei QrCode, mettendo a disposizione del programmatore funzionalità anche avanzate in tale ambito, ma soprattutto facilitando la stesura del codice. Soprattutto la creazione dei barcode negli ultimi anni ha visto un vasto impiego. Ancora oggi in ambito di gestione dei magazzini si fa uso dei barcode.

lunedì 6 marzo 2023

C# No data is available for encoding 1252. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.

 


Utilizzando la libreria PdfSharp, può capitare che durante l'inizializzazione della classe Font, venga generato il seguente errore "No data is available for encoding 1252. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.", questo perchè nel costruttore della form non è stata inizializzata la classe "Encoding".


Di seguito si riporta il frammento di codice da aggiungere nel costruttore della classe form per risolvere il problema.


public Form1()

        {

            InitializeComponent();

             Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

        }


domenica 5 marzo 2023

Sito per la creazione delle immagini tramite Intelligenza artificiale ghostlystock

 

Il sito Ghostlystock, visibile qui https://www.ghostlystock.com/ permette la creazione di immagini, da utilizzare liberamente, tramite l'intelligenza artificiale digitando nella casella di testo, l'immagine che si vuole realizzare.

Un sito ben fatto e che non richiede nessuna registrazione e nessuna email per scaricare le immagini gratuite.


sabato 4 marzo 2023

APT2000 cannot find the file specified

 



Quando si sviluppano applicazione MAUI, se viene visualizzato il messaggio di errore "APT2000 cannot find the file specified" molto probabilmente è dovuto che il progetto si è creato in un percorso dove il testo è con accento.

Se abbiamo un percorso del tipo  "C:\attività\progettoProva\ProgettoMAUI.SLN" l'accento sulla a genera l'errore.

Per tanto verificare che nel progetto, nei file ma soprattutto nel percorso dove si trova il progetto non sono presenti caratteri particolari come l'accento sulle vocali.

venerdì 3 marzo 2023

download gioco Rise of Industry

 

Disponibile gratuitamente e senza limitazioni il gioco di simulatore Rise Of Industry, con il quale si dovrà costruire aree industriali.

Il gioco in lingua italiana è per sistemi operativi Windows e per tutta la famiglia.

Fino al 9 marzo 2023 si potrà scaricare gratuitamente dopo tale data il download sarà a pagamento, per maggiori informazioni e download visitate il seguente sito Rise of Industry | Acquistalo e scaricalo subito sull'Epic Games Store

.Net formazione ed articoli sulla creazione di video giochi

 


La tecnologia .Net da diversi permette anche la creazione di video giochi tramite il linguaggio di programmazione C#.

Lo sviluppo avviene anche tramite varie framework, componenti e nuova versione del framework .Net.

Qui https://devblogs.microsoft.com/dotnet/choose-a-net-game-engine/ un post con vari riferimenti sui vari componenti gratuiti, mentre qui https://devblogs.microsoft.com/dotnet/game-development-with-net/ altro post sullo sviluppo dei video giochi.

Qui https://dotnet.microsoft.com/apps/games?WT.mc_id=gamedev-blog-abhamed il nuovo portale per la creazione dei video giochi, mentre qui https://dotnet.microsoft.com/learn/games?WT.mc_id=gamedev-blog-abhamed l'area formativa, qui https://dotnet.microsoft.com/learn/games/unity-tutorial/intro?WT.mc_id=gamedev-blog-abhamed l'area formativa Unity.

Che dire, buona programmazione e buon divertimento.

giovedì 2 marzo 2023

DepCheck indicates VC 10.0 Runtime (x86) is not installed.

 

Nell'eventualità che durante l'installazione di Visual Studio 2010 Professional sul sistema operativo Windows 11, può capitare di visualizzare un errore d'installazione dovuto al componente VC 10.0 Runtime (x86) il quale non viene installato come riportato nell'immagine precedente, con l'errore "DepCheck indicates VC 10.0 Runtime (x86) is not installed." nel file log.

Una soluzione che tra l'altro non ho trovato su internet, è quella di effettuare una prima installazione di Visual C# Express qui  https://my.visualstudio.com/Downloads  il sito dove scaricarlo, installazione del componente VC 10.0 Runtime (x86) qui https://learn.microsoft.com/it-it/cpp/windows/latest-supported-vc-redist?view=msvc-170 vedere la voce la versione 2010, ed il VC 10.0 Runtime (x86) con MFC qui https://www.microsoft.com/it-it/download/details.aspx?id=26999 il sito, e finalmente scaricare (dopo aver installato i precedenti programmi) Visual Studio 2010 Professional  da qui https://my.visualstudio.com/Downloads.

Durante l'installazione tenere disabilitati l'antivirus e Firewall, anche se non penso che sia determinate.

A questo punto verrà installato Visual Studio 2010 Professional.





mercoledì 1 marzo 2023

C# linq effettuare la differenza tra due classi con multiple proprietà

Di seguito si riporta un frammento di codice per effettuare la differenza tra due classi esaminando le proprietà come parametri di condizione.


Può capitare di avere due liste di oggetti che hanno una serie di proprietà, questi oggetti contengono n dati e vogliamo verificare che i dati presenti in uno non sono contenuti nell'altro. Un caso potrebbe essere che gli oggetti mappano due tabelle con le stesse colonne ma che si vuole verificare la differenza tra il primo ed il secondo.

La classe che utilizzeremo come oggetto e lista è la seguente:

  public class Anagrafica
    {
        public string Nome { get; set; }
        public string Cognome { get; set; }
    }


Di seguito l'inizializzazione della classe con una ipotetica fonte dati:


 List<Anagrafica> AnagraficaOrigine = CaricaDati();

 List<Anagrafica> AnagraficaDestinazione = CaricaDati();

Dopo aver valorizzato i due oggetti contenenti i dati per le due proprietà (nome e cognome) dobbiamo effettuare una select per verificare quali dati mancano nel secondo oggetto utilizzando le proprietà come condizione di filtro dei dati stessi.


 var risultato = AnagraficaOrigine .Where(a => !AnagraficaDestinazione .Any(b => a.Nome  == b.Nome && a.Cognome== b.Cognome));

L'oggetto "risultato" avrà i valori che non sono presenti nell'oggetto "AnagraficaDestinazione".

martedì 28 febbraio 2023

sito online per la creazione e modifica di immagini

Il seguente sito https://kleki.com/ permette la possibilità di creare e modificare immagini, sia come nuovi o su quelle già esistenti.
Uno strumento online gratuito che non richiede ne email e ne registrazioni.

domenica 26 febbraio 2023

Free VPN da Avira

 


Avira, oltre ad aver realizzato un antivirus gratuito, ha anche rilasciato un software di VPN per protegger ancora di più il proprio pc.

Il software è utilizzabile per vari sistemi operativi, quali Windows, Mac e Android e IOS, fornisce una maggiore sicurezza dei propri sistemi.

Per maggiori informazioni e download visitate il seguente sito https://www.avira.com/it/free-vpn

sabato 25 febbraio 2023

Download gioco Duskers

 


Disponibile gratuitamente e senza limitazioni il gioco di simulazione drone Duskers per sistemi operativi Windows e Mac.

Il gioco è disponibile gratuitamente fino al 2 marzo 2023, dopo tale data il download sarà a pagamento.

Per maggiori informazioni e download visitate il seguente sito Duskers | Acquistalo e scaricalo subito sull'Epic Games Store

QueryStorm componente per utilizzare C# in Microsoft Excel

 




QueryStorm, qui https://querystorm.com/csharp-in-excel/ il sito, offre la possibilità di aggiungere un componente al programma Microsoft Excel, per utilizzare il linguaggio di programmazione C# e Sql, per eseguire determinate funzionalità o ampliare quelle già presenti nel foglio di calcolo più usato al mondo.

E' possibile utilizzare anche la sintassi Linq, divenendo in questo modo un LinqToExcel.

Ci sono varie versioni di licenza, quella gratuita è la Community, mentre per altri utilizzi e funzionalità ci sono licenze a pagamento.

Per il download e maggiore informazioni visitate il sito indicato.

venerdì 24 febbraio 2023

Sito per sfondi computer

 


Se cercate un sito per scaricare immagini come sfondi per il proprio pc, dal seguente sito https://www.wallpaperfusion.com/ è possibile consultare una serie di immagini di ogni genere da utilizzare come sfondo per il proprio computer.


giovedì 23 febbraio 2023

Programmi gratuiti per il computer con sistema operativo Windows

Quando si acquista un nuovo pc, o ci viene regalato, spesso non si trovano i programmi essenziali all'utilizzo quotidiano che occorre fare.
Di seguito si riporta una serie di programmi gratuiti per il sistema operativo Windows, da installare per l'utilizzo quotidiano. 


Adobe: Programma gratuito per la lettura e compilazione dei moduli dei file Pdf. Download qui https://get.adobe.com/it/reader/

Office Automation: Sono programmi che offrono la possibilità di una serie sottoprogrammi, quali un programma di video scrittura per la stesura delle lettere, foglio di calcolo per operazioni di contabilità e matematici, presentazioni e tanto altro. Onlyoffice https://www.onlyoffice.com/it/download-desktop.aspx?from=home-use oppure Libre Office https://it.libreoffice.org/ sono entrambi molto validi, anche se OnlyOffice offre qualcosa in più.

Office online: Suite di Microsoft, gratuita se utilizzata con un account Microsoft con indirizzo email outlook o altri. Qui Home | Microsoft 365 (office.com) per accedere.


Browser Chrome: Programma per la navigazione in internet, oltre a Edge qui https://www.google.com/intl/it_it/chrome/ il sito.

Paint.Net programma di grafica: Un programma gratuito con codice sorgente, per realizzare immagini anche professionali https://www.getpaint.net/index.html





mercoledì 22 febbraio 2023

C# libreria gratuita per la gestione dei pdf PDFsharp

PdfSharp http://www.pdfsharp.net/ è una  libreria gratuita per la gestione dei file "pdf".

La libreria è utilizzabile anche per progetti commerciali, ed è open source, disponibile il sorgente anche su Git, qui https://github.com/empira/PDFsharp il sito.

Una libreria molto valida e professionale, anche se non viene aggiornata da circa 5 anni.




martedì 21 febbraio 2023

Rilasciata la versione di Flax Engine 1.5

Rilasciata in questi giorni la nuova versione del componente per la creazione di video giochi FlaxEngine 1.5.
Il componente per la creazione dei video giochi permette di gestire scenari in 3D ed è utilizzabile gratuitamente.
Il componente si può utilizzare con il linguaggio di programmazione C#,  nel sito si trova un manuale di utilizzo.
Per maggiori informazioni e download visitate il seguente sito Flax - Flax Engine

C# .Net MAUI la gestione della posizione del mouse nelle immagini.


In questo articolo vedremo come gestire la posizione del mouse in un’immagine in un progetto di .Net 7 Framework MAUI per la multipiattaforma, con il linguaggio di programmazione C# ed ambiente di sviluppo Visual Studio 2022.
Il controllo Image, tramite i suoi eventi di mouse quale “PointerEntered” che viene scatenato quando il mouse entra nell’area dell’immagine, l’evento “PointerExited” quando il puntatore del mouse esce dall’area dell’immagine e l’evento “PointerMoved” quando si sposta all’interno dell’area dell’immagine, possiamo gestire la posizione ed altri aspetti che possono tornare utile nello sviluppo di applicazioni.
Questi eventi si possono gestire solo per ambiente “Ipad”, “Mac Catalyst” e “Windows Application” .
Il risultato sarà come mostrato in figura 1.

Figura 1 – Le coordinate del mouse nell’immagine.


Creazione del progetto

Si crea un nuovo progetto di tipo “App .Net MAUI” e nella finestra successiva si sceglie il nome ed il percorso dove creare il progetto, nella finestra successiva, selezionare la versione 7 del Framework, a questo punto si crea il progetto.
Tra i controlli creati di default che troviamo nel progetto, cambiamo nel controllo “Image” l’immagine, puntando al logo del sito “Iprogrammatori” tramite percorso web, il tutto come rappresentato dal codice XAML qui di seguito.



XAML

   <Image

                SemanticProperties.Description="logo"

                HeightRequest="200"

                HorizontalOptions="Center"

                Source="https://www.iprogrammatori.it/images/logo-iprogrammatori.png"

                 x:Name="ImgLogo"

                >


Sempre per il controllo Image, si aggiunge il sotto nodo “Image.GestureRecognizers” per la gestione degli eventi, mettendo per i vari eventi (mouse che entra nell’immagine, mouse che esce dell’area dell’immagine e mouse che si sposta all’interno dell’area dell’immagine) il gestore degli eventi per ognuno.
Di seguito si riporta il codice completo delle suddette operazioni e di tutto il controllo “Image”.

XAML

<Image

                SemanticProperties.Description="logo"

                HeightRequest="200"

                HorizontalOptions="Center"

                Source="https://www.iprogrammatori.it/images/logo-iprogrammatori.png"

                 x:Name="ImgLogo"

                >

                <Image.GestureRecognizers>

                    <PointerGestureRecognizer PointerEntered="PointerGestureRecognizer_PointerEntered"  PointerExited="PointerGestureRecognizer_PointerExited" PointerMoved="PointerGestureRecognizer_PointerMoved">

                        

                       

                    </PointerGestureRecognizer>

                </Image.GestureRecognizers>

               

            </Image>


Di seguito si riporta anche il tag name del controllo “Label” per visualizzare informazioni a video.
Di seguito il frammento di codice per il controllo “Label”

XAML

    

            <Label

                Text="Esempio di gestione mouse"

                SemanticProperties.HeadingLevel="Level1"

                FontSize="32"

                HorizontalOptions="Center"

                x:Name="lblDati"/>



Stesura del codice

Dopo aver impostato la parte dei controlli e grafica del nostro progetto, non resta che scrivere il codice nel linguaggio C# per gestire la posizione del mouse per ogni evento.
Per ogni evento, andremo a gestire la posizione del mouse all’interno dell’immagine, quando entra, si sposta all’interno dell’area immagine e quando esce fuori.
Di seguito il codice per i tre eventi delle suddette operazioni.



C#

private void PointerGestureRecognizer_PointerEntered(object sender, PointerEventArgs e)

    {

        lblDati.Text = "Entrato";

        

        Point? posizione = e.GetPosition(null);

        string descrizione = "Posizione: Asse X: " + posizione.Value.X.ToString() + " Asse Y: " + posizione.Value.Y.ToString();

        // Posizione relativa dell'immagine

        Point? posizioneRelativaImagine = e.GetPosition(ImgLogo);

        descrizione += "\r\t" + "Posizione Immagine: Asse X: " + posizioneRelativaImagine.Value.X.ToString() + " Asse Y: " + posizioneRelativaImagine.Value.Y.ToString();

        // Posizione relativa nella finestra

        Point? posizioneRelativaFinestra = e.GetPosition((View)sender);

        descrizione += "\r\t" + "Posizione nella finestra: Asse X" + posizioneRelativaFinestra.Value.X.ToString() + " Asse Y: " + posizioneRelativaFinestra.Value.Y.ToString();

        lblDati.Text = descrizione;

    }

 

    private void PointerGestureRecognizer_PointerExited(object sender, PointerEventArgs e)

    {

        lblDati.Text = "Uscito";

        Point? posizione = e.GetPosition(null);

        string descrizione = "Posizione: Asse X: " + posizione.Value.X.ToString() + " Asse Y: " + posizione.Value.Y.ToString();

        // Posizione relativa dell'immagine

        Point? posizioneRelativaImagine = e.GetPosition(ImgLogo);

        descrizione += "\r\t" + "Posizione Immagine: Asse X: " + posizioneRelativaImagine.Value.X.ToString() + " Asse Y: " + posizioneRelativaImagine.Value.Y.ToString();

        // Posizione relativa nella finestra

        Point? posizioneRelativaFinestra = e.GetPosition((View)sender);

        descrizione += "\r\t" + "Posizione nella finestra: Asse X" + posizioneRelativaFinestra.Value.X.ToString() + " Asse Y: " + posizioneRelativaFinestra.Value.Y.ToString();

        lblDati.Text = descrizione;

    }

 

    private void PointerGestureRecognizer_PointerMoved(object sender, PointerEventArgs e)

    {

        lblDati.Text = "Si sposta dentro";

       

        Point? posizione = e.GetPosition(null);

        string descrizione = "Posizione: Asse X: " + posizione.Value.X.ToString() + " Asse Y: " + posizione.Value.Y.ToString();

        // Posizione relativa dell'immagine

        Point? posizioneRelativaImagine = e.GetPosition(ImgLogo);

        descrizione += "\r\t" + "Posizione Immagine: Asse X: " + posizioneRelativaImagine.Value.X.ToString() + " Asse Y: " + posizioneRelativaImagine.Value.Y.ToString();

        // Posizione relativa nella finestra

        Point? posizioneRelativaFinestra = e.GetPosition((View)sender);

        descrizione += "\r\t" + "Posizione nella finestra: Asse X" + posizioneRelativaFinestra.Value.X.ToString() + " Asse Y: " + posizioneRelativaFinestra.Value.Y.ToString();

        lblDati.Text = descrizione;

    }







Terminata la stesura del codice, non resta che eseguire il progetto in ambiente “Windows” per verificare la correttezza di quanto scritto.

Conclusioni

Con la tecnologia MAUI e soprattutto le potenzialità offerte da .Net 7 lo sviluppo di applicazioni multipiattaforma diventa molto facile e per chi proviene dallo sviluppo web o windows application non troverà nessuna difficoltà nel creare applicazioni per altri ambiti.
La gestione delle immagini può tornare utile in quelle applicazioni che richiedono situazioni particolare come può essere un gioco oppure aspetti grafici da rendere più interattiva l’applicazione.