Atualizar rótulo do indicador em c #

3

Eu criei um novo indicador:

indicator = 
        new ApplicationIndicator (
            "sample-application",       //id of the the indicator icon
            "app-icon",                 //file name of the icon (will look for app-icon.png) 
            Category.ApplicationStatus, 
            ExecutableFolder            //the folder where to look for app-icon.png
        );  

        //Build Popup Menu for ApplicationIndicator
        Menu popupMenu = new Menu ();
        indicator.Label = "init label";
...

De uma chamada de retorno do temporizador, função Quero atualizar o rótulo do indicador:

indicator.label = "new label";

O novo valor de rótulo não é aplicado ao indicador. Ainda mostra a string init label .

    
por Nasreddine 24.06.2014 / 11:08

1 resposta

2
  • Acho que apenas aquele erro de digitação deve ser indicator.Label = "new label"; com capital L .

  • Aqui está minha demonstração completa de trabalho (Testado no Ubuntu 14.04):

    1. indicator_demo.cs

      using Gtk;
      using AppIndicator;
      
      public class IndicatorExample
      {
              static Window win;
              static  ApplicationIndicator indicator;
              static int c;
      
      
              public static void Main ()
              {
                      Application.Init ();
      
                      win = new Window ("Test");
                      win.Resize (200, 200);
      
                      Label label = new Label ();
                      label.Text = "Hello, world!";
      
                      win.Add (label);
      
                      indicator = new ApplicationIndicator ("my-id",
                                                                                 "my-name",
                                                                                 Category.ApplicationStatus);
      
                      indicator.Status = Status.Attention;
      
      
                      Menu menu = new Menu ();
                      //menu.Append (new MenuItem ("Foo"));
                      //menu.Append (new MenuItem ("Bar"));
      
                      indicator.Menu = menu;
                      indicator.Menu.Show();
                      indicator.Label = "init label";                
      
                      win.ShowAll ();
      
                      indicator.Label = "label2";
                      c = 0;
                      GLib.Timeout.Add (1000, new GLib.TimeoutHandler (update));
      
                      Application.Run ();
              }
      
              public static bool update()
              {
                      c+=1;
                      indicator.Label = c.ToString();
      
                      return true;
              }
      }
      

      Este foi um mod de Wiki do Ubuntu: Indicadores de aplicativos Exemplo c #.

    2. Compilar & amp; Corra para testar:

      dmcs -pkg:gtk-sharp-2.0 -pkg:appindicator-sharp-0.1 indicator_demo.cs
      mono indicator_demo.exe
      
por user.dz 07.07.2014 / 13:32

Tags