У меня есть приложение 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#
Место общения программистов C#
-
Anonymous
1733640972
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/ms646360(v=vs.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() { }
}
Подробнее здесь: [url]https://stackoverflow.com/questions/6256392/wpf-minimize-on-taskbar-click[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия