После setContentView элемент SurfaceView рисует под StreetViewPanoramaView

Вы должны использовать элемент управления NotifyIcon из System.Windows.Forms, или, альтернативно, вы можете использовать API значков уведомлений, предоставляемый Windows API. WPF Не дает такого эквивалента, и он был запрошен в Microsoft Connect несколько раз.

У меня есть код в GitHub, который использует System.Windows.Forms NotifyIcon Component из приложения WPF, код можно просмотреть на https://github.com/wilson0x4d/Mubox/blob/master/Mubox.QuickLaunch/AppWindow.xaml.cs

Вот сводные биты:

Создайте окно WPF с ShowInTaskbar = False и загрузите его в не видимое состояние.

На уровне класса:

private System.Windows.Forms.NotifyIcon notifyIcon = null;

Во время OnInitialize ():

notifyIcon = new System.Windows.Forms.NotifyIcon();
notifyIcon.Click += new EventHandler(notifyIcon_Click);
notifyIcon.DoubleClick += new EventHandler(notifyIcon_DoubleClick);
notifyIcon.Icon = IconHandles["QuickLaunch"];

Во время OnLoaded ():

notifyIcon.Visible = true;

И для взаимодействия (показано как notifyIcon.Click и DoubleClick выше):

void notifyIcon_Click(object sender, EventArgs e)
{
    ShowQuickLaunchMenu();
}

Здесь вы можете возобновить использование элементов управления WPF и API, таких как контекстные меню, всплывающие окна и т. д.

Это так просто. Вам не обязательно нужно WPF-окно для размещения компонента, это просто самый удобный способ внедрить его в приложение WPF (поскольку окно обычно является точкой входа по умолчанию, определенной через App.xaml), аналогично, t требуется WPF Wrapper или сторонний элемент управления, поскольку SWF-компонент гарантированно присутствует в любой установке .NET Framework, которая также поддерживает WPF, так как она является частью .NET Framework (на которой основаны все текущие и будущие версии .NET Framework). На сегодняшний день Microsoft не указывает, что поддержка SWF будет удалена из .NET Framework в ближайшее время.

Надеюсь, что это поможет.

Это немного сыра, который вы должны использовать Компонент pre-3.0 Framework для получения значка в трее, но, как объяснил Microsoft, в рамках WPF нет концепции системного лотка. WPF - это технология презентации, а значки уведомлений - это концепция операционной системы (не концепция «презентация»).

0
задан Valery 1 March 2019 в 19:13
поделиться

1 ответ

У меня есть решение: поместите элемент «StreetOverlayView extends SurfaceView» в новый FrameLayout, а после setContentView я удалим свой элемент из этого FrameLayout и добавлю снова.

    frame1.removeView(  markerView  );
    frame1.addView   (  markerView  );
0
ответ дан Valery 1 March 2019 в 19:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: