У меня есть приложение WPF, которое по требованию заинтересованных сторон должно иметь WindowStyle="None", ResizeMode="NoResize" и AllowTransparency="True". Я знаю, что, если вы не используете Chrome Windows, вам придется заново реализовать многие функции обработки окон ОС. Мне удалось создать рабочую кнопку свертывания, однако мне не удалось повторно реализовать функцию, позволяющую Windows сворачивать приложение при нажатии на значок панели задач в нижней части экрана.
Требования пользователя таковы, что приложение должно сворачиваться при щелчке значка на панели задач и восстанавливаться при повторном нажатии. Последний никогда не переставал работать, но первый мне не удалось реализовать. Вот код, который я использую:
public ShellView(ShellViewModel viewModel)
{
InitializeComponent();
// Set the ViewModel as this View's data context.
this.DataContext = viewModel;
this.Loaded += new RoutedEventHandler(ShellView_Loaded);
}
private void ShellView_Loaded(object sender, RoutedEventArgs e)
{
var m_hWnd = new WindowInteropHelper(this).Handle;
HwndSource.FromHwnd(m_hWnd).AddHook(WindowProc);
}
private IntPtr WindowProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
if (msg == NativeMethods.CS_DBLCLKS)
{
this.WindowState = WindowState.Minimized;
// handled = true
}
return IntPtr.Zero;
}
///
/// http://msdn.microsoft.com/en-us/library ... s.85).aspx
///
internal class NativeMethods
{
public const int SC_RESTORE = 0xF120;
public const int SC_MINIMIZE = 0xF020;
public const int SC_CLOSE = 0xF060;
public const int WM_SYSCOMMAND = 0x0112;
public const int WS_SYSMENU = 0x80000;
public const int WS_MINIMIZEBOX = 0x20000;
public const int CS_DBLCLKS = 0x8;
NativeMethods() { }
}
Подробнее здесь: https://stackoverflow.com/questions/625 ... kbar-click
Свернуть WPF на панели задач. Щелкните мышью. ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Черепаха Python после рисования, щелкните мышью, очистите экран и перерисуйте
Anonymous » » в форуме Python - 0 Ответы
- 51 Просмотры
-
Последнее сообщение Anonymous
-