Xamarin WPF добавлен в проект Xamarin в Visual Studio Xamarin.Forms.WPF .
Редактируется только проект WPF App.xaml и App.xaml.cs, MainWindow.xaml не изменяется.
Мое намерение простое, приложение Tray, которое позволяет пользователю настроить открытие mainWindow при запуске приложения или вообще не отображать его (только в Tray). Возможно, реализация наивна, а может, не достаточно профессиональна, если Другой способ реализовать это. Пожалуйста, порекомендуйте его.
App.xaml
<Application x:Class="WPFXamarin3.WPF.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WPFXamarin3.WPF"
Startup="Application_Startup"
App.xaml.css
public partial class App : System.Windows.Application
{
private NotifyIcon _notifyIcon;
FormsApplicationPage mainWindow;
private void Application_Startup(object sender, StartupEventArgs e)
{
_notifyIcon = new NotifyIcon();
_notifyIcon.Icon = Icon.ExtractAssociatedIcon(Assembly.GetEntryAssembly().Location);
_notifyIcon.ShowBalloonTip(1000, null, "AB", ToolTipIcon.None);
_notifyIcon.Text = "BB";
_notifyIcon.Visible = true;
ContextMenu contextMenu1 = new System.Windows.Forms.ContextMenu();
MenuItem menuItem1 = new System.Windows.Forms.MenuItem();
menuItem1.Index = 0;
menuItem1.Text = "Exit";
menuItem1.Click += new System.EventHandler(this.menuItem1_Click);
MenuItem menuItem2 = new System.Windows.Forms.MenuItem();
menuItem2.Index = 1;
menuItem2.Text = "Close";
menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
contextMenu1.MenuItems.AddRange(
new System.Windows.Forms.MenuItem[] { menuItem1, menuItem2 });
_notifyIcon.ContextMenu = contextMenu1;
mainWindow = new MainWindow();
mainWindow.Show();
}
private void menuItem1_Click(object Sender, EventArgs e)
{
System.Windows.Application.Current.Shutdown();
}
private void menuItem2_Click(object Sender, EventArgs e)
{
mainWindow.Close();
//mainWindow.Hide();
}