大佬们好,我想利用WPF做一个悬浮窗,在玩游戏的时候可以看视频
wpf吧
全部回复
仅看楼主
level 1
如题,程序是做出来了,利用Topmost="True"把窗口置顶,然后利用
private void MainWindow_SourceInitialized(object sender, EventArgs e)
{
IntPtr hwnd = new WindowInteropHelper(this).Handle;
uint extendedStyle = GetWindowLong(hwnd, GWL_EXSTYLE);
SetWindowLong(hwnd, GWL_EXSTYLE, extendedStyle | WS_EX_TRANSPARENT);
}
private const int WS_EX_TRANSPARENT = 0x20;
private const int GWL_EXSTYLE = -20;
[DllImport("user32", EntryPoint = "SetWindowLong")]
private static extern uint SetWindowLong(IntPtr hwnd, int nIndex, uint dwNewLong);
[DllImport("user32", EntryPoint = "GetWindowLong")]
private static extern uint GetWindowLong(IntPtr hwnd, int nIndex);
实现窗口的穿透,效果也是OK的.唯一的问题是,游戏帧率会大打折扣。就类似焦点不在游戏程序上,导致程序刷新率降低。
有没有大佬指导一下原因,还有没有解决办法,或者新的方案规避这个问题。
2025年01月19日 15点01分 1
level 4
应该是就是你输入焦点没给到游戏窗口。
你试试通过IsHitTestVisible="False" AllowsTransparency="True" Background="{x:Null}" 仨属性去处理窗口。
或者你干脆用chrome浏览器的小窗模式来实现视频播放
2025年01月24日 11点01分 2
小窗模式没法看到B站的弹幕嘛~所以才想自己做个
2025年03月13日 01点03分
level 2
解决了吗
2025年04月11日 03点04分 3
1