Свернуть WPF на панели задач. Щелкните мышью.C#

Место общения программистов C#
Ответить
Anonymous
 Свернуть WPF на панели задач. Щелкните мышью.

Сообщение Anonymous »

У меня есть приложение 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»