J'ai une application WPF (écrite en C#) qui a un contrôle Listview qui défile parfaitement avec la molette de la souris lorsque l'application est nette. Toutefois, lorsque l'application n'est pas au point, même lorsque le pointeur de la souris est sur la zone d'affichage de la liste de l'application, la liste ne défile pas. Je continue à voir les effets liés à mousehover sur l'application mais aucun événement mousewheel n'est reçu. Ceci est en ligne avec la façon dont la plupart des autres applications fonctionnent sur mon bureau, mais certains d'entre eux (comme Facebook Messenger) supportant le défilement sans focus que je voudrais imiter dans mon application WPF. J'ai cherché des forums MSDN et Stackoverflow et vu plusieurs solutions pour Windows Forms mais ils ont été des questions posées il y a plus de 5 ans et je me demandais si quelqu'un a réussi à le faire relativement facilement sur .net 4.5 et peut me diriger vers possible solutions.WPF Listview ne défile pas (avec molette de la souris) lorsque l'application n'est pas mise au point
--- --- Modifier
j'ai pu progresser dans une certaine mesure, cela grâce à ce fil C# ListView mouse wheel scroll without focus
Voici comment mon la fonction qui reçoit la molette de la souris semble
private static IntPtr HookCallback(
int nCode, IntPtr wParam, IntPtr lParam)
{
if (nCode >= 0 &&
MouseMessages.WM_MOUSEWHEEL == (MouseMessages)wParam)
{
MSLLHOOKSTRUCT hookStruct = (MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));
Console.WriteLine(hookStruct.pt.x + ", " + hookStruct.pt.y);
Console.WriteLine((short)((hookStruct.mouseData)>>16));
MouseWheelEventArgs myArgs = new MouseWheelEventArgs(System.Windows.Input.Mouse.PrimaryDevice, (int)hookStruct.time, (short)((hookStruct.mouseData)>>16));
myMainFrame.SidePanelControl.ScrollTheListView(myArgs);
}
return CallNextHookEx(_hookID, nCode, wParam, lParam);
}
Comme vous pouvez le voir, j'initialise une instance MouseWheelEventArgs et possède les attributs time, delta et mouse device.
Comment puis-je transmettre cet événement mousewheel à mon scrollviewer listview?