Gestire la pressione di un pulsante su popup (balloontip) window

di il
4 risposte

Gestire la pressione di un pulsante su popup (balloontip) window

VS 2022. Applicazione WinForms. Con questo semplice codice:

     Imports Microsoft.Toolkit.Uwp.Notifications


     Dim nts As New ToastContentBuilder()
     nts.SetToastScenario(ToastScenario.Reminder)
     nts.AddHeader("1", Text1, Arg1)
     nts.AddText(Text2)
     nts.AddButton(Text3", ToastActivationType.Background, Arg2)
     nts.SetToastDuration(ToastDuration.Long)
     nts.Show()

Posso aprire senza problemi un popup di Windows completo di Button.

Peccato che da nessuna parte viene spiegato come gestire la pressione di quel pulsante. Sul web si trovano rarissimi esempi in C# intraducibili in VB.NET.

A che scopo poter aggiungere un Button anche in VB.NET se poi non è previsto un modo per gestire la sua pressione??? Qualche idea??

4 Risposte

  • Re: Gestire la pressione di un pulsante su popup (balloontip) window

    01/02/2023 - phil2000 ha scritto:


    VS 2022. Applicazione WinForms. Con questo semplice codice:

         Imports Microsoft.Toolkit.Uwp.Notifications
    
    
         Dim nts As New ToastContentBuilder()
         nts.SetToastScenario(ToastScenario.Reminder)
         nts.AddHeader("1", Text1, Arg1)
         nts.AddText(Text2)
         nts.AddButton(Text3", ToastActivationType.Background, Arg2)
         nts.SetToastDuration(ToastDuration.Long)
         nts.Show()

    Posso aprire senza problemi un popup di Windows completo di Button.

    Peccato che da nessuna parte viene spiegato come gestire la pressione di quel pulsante. Sul web si trovano rarissimi esempi in C# intraducibili in VB.NET.

    A che scopo poter aggiungere un Button anche in VB.NET se poi non è previsto un modo per gestire la sua pressione??? Qualche idea??

    Devi usare l'overload di AddButton() che accetta come parametro un IToastButton, andando a creare una istanza del pulsante con la classe ToastButton specificando i relativi parametri.

    Non conosco il framework quindi non saprei come si utilizzano gli “argomenti” specificati per il pulsante, ma immagino che siano informazioni rientranti nell'app all'interno di qualche evento dedicato.

    Cerca di interpretare il codice C# che trovi nella documentazione o negli esempi, oppure - se ti serve una mano - copialo qui così possiamo esaminarlo per fornire un suggerimento mirato.

    Ciao! :)

  • Re: Gestire la pressione di un pulsante su popup (balloontip) window

    Grazie per la risposta, anche se il tuo suggerimento circa l' overload mi suona come arabo. :)

    Inutile che posto le richieste fatte sul web, che tanto nessuna risposta ha funzionato… il mio riferimento rimane la pagina di Microsoft.

    Premetto che il package cita UWP, ma nella pagina precisa che è accettato anche dalle applicazione WinForms VB.

    Allo Step 3 si spiega di come gestire l' attivazione… peccato che non funzioni, altrimenti non ci sarebbero richieste di come mai non funziona, alle quali regolarmente si risponde facendo un copia / incolla degli esempi disponibili.

    IN EFFETTI c' è un evento OnActivated, ed in effetti non ho evidenziato nel codice, che ho provato ad attivare con un AddHandler: NADA.

        <CLSCompliant(False)> 'se non lo preciso mi dà errore
        Public Event Clicked As Microsoft.Toolkit.Uwp.Notifications.OnActivated
        ............
        AddHandler Clicked, AddressOf Premuto
        ............
        Private Sub Premuto(e As ToastNotificationActivatedEventArgsCompat)
            Debug.Print("+++++++++++++ Premuto " & e.ToString)
        End Sub    

    Riguardo alla attivazione ho provato sia Foreground che Background (in ultimo).

    Nell' esempio UWP:

    protected override void OnActivated(IActivatedEventArgs e)

    Non si capisce bene da dove esca questo IActivaredEventArgs, visto che se sostituisco, seguendo l' esempio:

    Private Sub Premuto(e As IActivatedEventArgs)

    ottengo errore: Option Strict On non consente la riduzione in conversioni implicite di tipi tra il metodo 'Private Sub Premuto(e As IActivatedEventArgs)' e il delegato 'Delegate Sub OnActivated(e As ToastNotificationActivatedEventArgsCompat)'

    L' esempio C# Desktop è intraducibile in VB e non si capisce da dove esca il ToastNotificationManagerCompat.OnActivated

    Mai visto così scarsa informazione. Prova ne è che nel web no si trova un solo esempio VB funzionante.

  • Re: Gestire la pressione di un pulsante su popup (balloontip) window

    04/02/2023 - phil2000 ha scritto:


    Premetto che il package cita UWP, ma nella pagina precisa che è accettato anche dalle applicazione WinForms VB.

    Io ho provato a installarlo su un progetto WinForms creato con .NET 7.0, ma il package non viene accettato.

    Che tipo di applicazione/progetto hai creato? E con quale versione del framework?

  • Re: Gestire la pressione di un pulsante su popup (balloontip) window

    La mia è una applicazione WinForms basata su Framework 4.8. Nessun problema a variare in mille modi la notifica, Solo non c' è modo di catturare la pressione del pulsante.

Devi accedere o registrarti per scrivere nel forum
4 risposte