在WPF中进行AppBar对接,可以通过使用Windows API(WinAPI)来实现。以下是一个简单的示例,展示了如何在WPF应用程序中实现AppBar功能。
WindowStyle="None"
AllowsTransparency="True"
private const int WM_ACTIVATEAPP = 0x001C;
private const int WM_NCLBUTTONDOWN = 0x00A1;
private const int WM_LBUTTONDOWN = 0x0201;
private const int WM_NCRBUTTONDOWN = 0x00A5;
private const int WM_RBUTTONDOWN = 0x0204;
private const int WM_NCRBUTTONUP = 0x00A6;
private const int WM_NCMOUSEMOVE = 0x00A0;
private const int WM_MOUSEMOVE = 0x0200;
private const int WM_NCHITTEST = 0x0084;
private const int WM_KEYDOWN = 0x0100;
private const int WM_KEYUP = 0x0101;
private const int WM_SYSKEYDOWN = 0x0104;
private const int WM_SYSKEYUP = 0x0105;
private const int WM_SYSCOMMAND = 0x0112;
private const int WM_MOVE = 0x0003;
private const int WM_SIZE = 0x0005;
private const int WM_SIZING = 0x0214;
private const int WM_CAPTURECHANGED = 0x0215;
private const int WM_EXITSIZEMOVE = 0x0232;
private const int WM_ENTERSIZEMOVE = 0x0231;
private const int WM_GETMINMAXINFO = 0x0024;
private const int WM_WINDOWPOSCHANGING = 0x0046;
private const int WM_WINDOWPOSCHANGED = 0x0047;
private const int WM_NCCALCSIZE = 0x0083;
private const int WM_NCPAINT = 0x0085;
private const int WM_PRINT = 0x0317;
private const int WM_PRINTCLIENT = 0x0318;
private const int WM_THEMECHANGED = 0x031A;
private const int WM_DWMCOMPOSITIONCHANGED = 0x031E;
private const int WM_DWMNCRENDERINGCHANGED = 0x031F;
private const int WM_DWMCOLORIZATIONCOLORCHANGED = 0x0320;
private const int WM_DWMWINDOWMAXIMIZEDCHANGE = 0x0321;
private const int WM_DWMSENDICONICTHUMBNAIL = 0x0323;
private const int WM_DWMSENDICONICLIVEPREVIEWBITMAP = 0x0326;
private const int WM_GETTITLEBARINFOEX = 0x033F;
private const int WM_HANDHELDFIRST = 0x0358;
private const int WM_HANDHELDLAST = 0x035F;
private const int WM_AFXFIRST = 0x0360;
private const int WM_AFXLAST = 0x037F;
private const int WM_PENWINFIRST = 0x0380;
private const int WM_PENWINLAST = 0x038F;
private const int WM_APP = 0x8000;
private const int WM_USER = 0x0400;
DllImport("user32.dll")
private static extern int RegisterWindowMessage(string lpString);
DllImport("user32.dll")
private static extern bool ReleaseCapture();
DllImport("user32.dll")
private static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
DllImport("user32.dll")
private static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect);
DllImport("user32.dll")
private static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
DllImport("user32.dll")
private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
DllImport("user32.dll")
private static extern bool GetClientRect(IntPtr hWnd, ref RECT lpRect);
DllImport("user32.dll")
private static extern bool AdjustWindowRectEx(ref RECT lpRect, uint dwStyle, bool bMenu, uint dwExStyle);
DllImport("user32.dll")
private static extern bool IsZoomed(IntPtr hWnd);
DllImport("user32.dll")
private static extern bool IsIconic(IntPtr hWnd);
DllImport("user32.dll")
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
DllImport("user32.dll")
private static extern bool IsWindowVisible(IntPtr hWnd);
DllImport("user32.dll")
private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);
DllImport("user32.dll")
private static extern bool EnableMenuItem(IntPtr hMenu, uint uIDEnableItem, uint uEnable);
DllImport("user32.dll")
private static extern bool DrawMenuBar(IntPtr hWnd);
DllImport("user32.dll")
private static extern bool GetMonitorInfo(IntPtr hMonitor, MONITORINFO lpmi);
DllImport("user32.dll")
private static extern IntPtr MonitorFromWindow(IntPtr hwnd, uint dwFlags);
DllImport("user32.dll")
private static extern bool GetCursorPos(ref POINT lpPoint);
DllImport("user32.dll")
private static extern bool ScreenToClient(IntPtr hWnd, ref POINT lpPoint);
DllImport("user32.dll")
private static extern bool SetCursorPos(int X, int Y);
DllImport("user32.dll")
private static extern bool GetKeyboardState(byte[] lpKeyState);
DllImport("user32.dll")
private static extern uint MapVirtualKey(uint uCode, uint uMapType);
DllImport("user32.dll")
private static extern IntPtr GetFocus();
DllImport("user32.dll")
private static extern bool AttachThreadInput(IntPtr idAttach, IntPtr idAttachTo, bool fAttach);
DllImport("user32.dll")
private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
DllImport("user32.dll")
private static extern bool GetKeyState(int nVirtKey);
DllImport("user32.dll")
private static extern bool SetForegroundWindow(IntPtr hWnd);
DllImport("user32.dll")
private static extern bool BringWindowToTop(IntPtr hWnd);
DllImport("user32.dll")
领取专属 10元无门槛券
手把手带您无忧上云