using System.Windows; using System.Windows.Controls; using FlexitimeTaskbarUtility.Extensions; using FlexitimeTaskbarUtility.Interfaces; using FlexitimeTaskbarUtility.Services; using FlexitimeTaskbarUtility.ViewModels; using Hardcodet.Wpf.TaskbarNotification; using Prism.DryIoc; using Prism.Events; using Prism.Ioc; using Prism.Regions; namespace FlexitimeTaskbarUtility { /// /// Interaction logic for App.xaml /// public partial class App : PrismApplication { private TaskbarIcon notifyIcon; protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); } protected override void ConfigureRegionAdapterMappings(RegionAdapterMappings regionAdapterMappings) { base.ConfigureRegionAdapterMappings(regionAdapterMappings); regionAdapterMappings.RegisterMapping(typeof(ContextMenu), Container.Resolve()); } protected override void RegisterTypes(IContainerRegistry containerRegistry) { containerRegistry.Register(); containerRegistry.Register(); containerRegistry.Register(); containerRegistry.Register(); } protected override Window CreateShell() { return null; } protected override void OnInitialized() { base.OnInitialized(); notifyIcon = (TaskbarIcon)FindResource("NotifyIcon"); notifyIcon.DataContext = Container.Resolve(); } protected override void OnExit(ExitEventArgs e) { notifyIcon.Dispose(); //the icon would clean up automatically, but this is cleaner base.OnExit(e); } } }