如何在Windows 10中通过编程实现图片全屏打开?
可行的编程方案
1. 用.NET WinForms/WPF 自定义图片查看器
自己写个极简的全屏查看器,完全控制显示效果,无第三方依赖:
- WinForms 示例代码:
using System; using System.Windows.Forms; using System.Drawing; namespace FullScreenImageViewer { public class FullScreenViewer : Form { public FullScreenViewer(string imagePath) { // 去掉边框+最大化窗口 FormBorderStyle = FormBorderStyle.None; WindowState = FormWindowState.Maximized; var pb = new PictureBox(); pb.Dock = DockStyle.Fill; // 保持图片比例铺满屏幕,用StretchImage会强制拉伸变形 pb.SizeMode = PictureBoxSizeMode.Zoom; pb.Image = Image.FromFile(imagePath); Controls.Add(pb); // 按ESC退出全屏 KeyDown += (s, e) => { if (e.KeyCode == Keys.Escape) Close(); }; } [STAThread] static void Main(string[] args) { if (args.Length > 0) { Application.Run(new FullScreenViewer(args[0])); } } }
编译后直接传入图片路径就能运行,效果和暂停的幻灯片完全一致。
- WPF 思路类似:创建
WindowStyle="None"+WindowState="Maximized"的窗口,用Image控件绑定图片源,设置Stretch="UniformToFill"实现铺满且保持比例。
2. Python 快速实现全屏查看
用Python的GUI库快速搭建,无需编译,适合快速测试:
- Tkinter + PIL 示例:
import tkinter as tk from PIL import Image, ImageTk def show_fullscreen(image_path): root = tk.Tk() root.attributes('-fullscreen', True) root.bind('<Escape>', lambda _: root.destroy()) # 加载并缩放图片到屏幕尺寸 img = Image.open(image_path) screen_w, screen_h = root.winfo_screenwidth(), root.winfo_screenheight() img = img.resize((screen_w, screen_h), Image.Resampling.LANCZOS) tk_img = ImageTk.PhotoImage(img) label = tk.Label(root, image=tk_img) label.pack(fill=tk.BOTH, expand=True) root.mainloop() if __name__ == '__main__': show_fullscreen("你的图片路径.jpg")
- 用PyQt的话可实现更流畅的缩放,核心是调用
QMainWindow.showFullScreen(),用QLabel.setScaledContents(True)让图片铺满控件。
3. PowerShell 脚本实现(无需编译)
直接用PowerShell写脚本,Windows自带环境即可运行:
Add-Type -AssemblyName System.Windows.Forms # 创建全屏窗口 $form = New-Object System.Windows.Forms.Form $form.FormBorderStyle = 'None' $form.WindowState = 'Maximized' $form.KeyPreview = $true $form.Add_KeyDown({ if ($_.KeyCode -eq 'Escape') { $form.Close() } }) # 加载图片并铺满窗口 $pictureBox = New-Object System.Windows.Forms.PictureBox $pictureBox.Dock = 'Fill' $pictureBox.SizeMode = 'Zoom' $pictureBox.Image = [System.Drawing.Image]::FromFile("C:\示例图片.jpg") $form.Controls.Add($pictureBox) $form.ShowDialog() | Out-Null
保存为.ps1文件,右键用PowerShell运行即可,按ESC退出。
4. C++ 调用Windows API(底层控制)
如果需要极致性能或集成到其他C++程序中,可以直接调用Windows API:
- 核心流程:注册窗口类,创建无边框全屏窗口,用GDI+或WIC加载图片,在
WM_PAINT消息中将图片绘制到整个客户区。这种方式最灵活,但代码量相对较大。
内容的提问来源于stack exchange,提问作者Hashim Aziz
相关产品推荐
相关产品推荐

