public void OnUpdateTrayIcon(object sender, SensorWorkerRunner.SensorResultsChangedEventArgs e) { Platform.ApplicationInvoke(() => { if (e.SensorResults.Count <= 0) { TrayIconStrip.Update(new Action <ITrayIcon>[] { trayIcon => { trayIcon.ToolTipText = Globals.ApplicationName; trayIcon.Icon = Globals.ApplicationIcon.ToBitmap(); trayIcon.ContextMenu = ContextMenu; trayIcon.OnActivate = OnToggleConfigWindow; if (!trayIcon.Visible) { trayIcon.Visible = true; } } }); return; } TrayIconStrip.Update(e.SensorResults.Select(result => new Action <ITrayIcon> (trayIcon => { var icon = TextIconRenderer.Render(result.Value, Color.White); if (Log.IsDebugEnabled) { using (var fs = File.Create("trayIcon.png")) { icon.Save(fs, ImageFormat.Png); } } trayIcon.ToolTipText = $"{result.ValueName} ({result.SensorName})"; trayIcon.Icon = icon; trayIcon.ContextMenu = ContextMenu; trayIcon.OnActivate = OnToggleConfigWindow; if (!trayIcon.Visible) { trayIcon.Visible = true; } }))); }); }