public MainWindow() { InitializeComponent(); AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(EventCurrentDomainUnhandledException); this.DataContext = this; iExtendedNotifyIcon = new ExtendedNotifyIcon(Properties.Resources.Icon); iExtendedNotifyIcon.Click += EventNotifyIconClick; iExtendedNotifyIcon.RightClick += EventNotifyIconRightClick; System.Windows.Forms.ContextMenu menu = new System.Windows.Forms.ContextMenu(); System.Windows.Forms.MenuItem open = new System.Windows.Forms.MenuItem("Open", new EventHandler(EventContextMenuOpen)); System.Windows.Forms.MenuItem exit = new System.Windows.Forms.MenuItem("Exit", new EventHandler(EventContextMenuExit)); menu.MenuItems.Add(open); menu.MenuItems.Add(exit); iExtendedNotifyIcon.ContextMenu = menu; Left = SystemParameters.WorkArea.Width - LayoutRoot.Width - 10; Top = SystemParameters.WorkArea.Height - LayoutRoot.Height - 2; iConfigurationWindow = new ConfigurationWindow(); iMediaPlayerWindow = new MediaPlayerWindow(iConfigurationWindow.Enabled, this); iConfigurationWindow.Left = Left; iConfigurationWindow.Top = Top - iConfigurationWindow.LayoutRoot.Height + 1; iMediaPlayerWindow.Left = Left; iMediaPlayerWindow.Top = Top - iMediaPlayerWindow.LayoutRoot.Height + 1; // Locate these storyboards and "cache" them - we only ever want to find these once for performance reasons iStoryBoardFadeIn = (Storyboard)this.TryFindResource("storyBoardFadeIn"); iStoryBoardFadeIn.Completed += new EventHandler(EventStoryBoardFadeInCompleted); iStoryBoardFadeOut = (Storyboard)TryFindResource("storyBoardFadeOut"); iStoryBoardFadeOut.Completed += new EventHandler(EventStoryBoardFadeOutCompleted); this.Closing += EventWindowClosing; System.Drawing.Image image = OpenHome.Songcast.Properties.Resources.Icon.ToBitmap(); MemoryStream stream = new MemoryStream(); image.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp); byte[] bytes = stream.ToArray(); try { iSongcast = new Songcast("av.openhome.org", iConfigurationWindow.Subnet, iConfigurationWindow.Channel, iConfigurationWindow.Ttl, iConfigurationWindow.Latency, iConfigurationWindow.Multicast, iConfigurationWindow.Enabled, iConfigurationWindow.Preset, iMediaPlayerWindow.ReceiverList, iConfigurationWindow.SubnetList, this, "OpenHome", "http://www.openhome.org", "http://www.openhome.org", bytes, "image/bmp"); } catch (SongcastError e) { MessageBox.Show(e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); App.Current.Shutdown(1); } iConfigurationWindow.SubnetChanged += EventSubnetChanged; iConfigurationWindow.MulticastChanged += EventMulticastChanged; iConfigurationWindow.ChannelChanged += EventMulticastChannelChanged; iConfigurationWindow.TtlChanged += EventTtlChanged; iConfigurationWindow.LatencyChanged += EventLatencyChanged; iConfigurationWindow.PresetChanged += EventPresetChanged; bool value = iConfigurationWindow.Enabled; iMediaPlayerWindow.SetEnabled(value); Settings.Click += new RoutedEventHandler(EventSettingsClick); Receivers.Click += new RoutedEventHandler(EventReceiversClick); this.Topmost = true; iConfigurationWindow.Topmost = true; iMediaPlayerWindow.Topmost = true; }