我有一个通过ClickOnce安装在Windows 10 Pro上的WPF应用程序并使用MahApps.Metro。
它设置为在Windows启动时使用没有密码的非管理员帐户启动。平板电脑模式已启用。
我希望应用程序全屏弹出以创建 kiosk 类似的体验,但在启动时启动应用程序启动最小化。为了澄清,WindowState是最大化的,但是Windows没有显示它,而是显示了开始屏幕。它在手动启动时启动全屏最大化。
这是一些代码,但我想这更像是一个配置问题,而不是代码问题:
这就是我在启动时设置启动的方式:
RegistryKey rkApp = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
string startPath = Environment.GetFolderPath(Environment.SpecialFolder.Programs)
+ @"\Publisher\AppName.appref-ms";
rkApp.SetValue("AppName", startPath);
这是MainWindow.xaml
<Controls:MetroWindow x:Class="AppName.MainWindow"
IgnoreTaskbarOnMaximize="True" ShowTitleBar="False" WindowStyle="None" WindowState="Maximized">
...
</Controls:MetroWindow>
答案 0 :(得分:2)
查看适用于Windows 10的Kiosk模式。
来自Set up a device for anyone to use (kiosk mode):
在Windows 10桌面版中可以轻松设置一次性设备 版本(专业版,企业版和教育版)。对于自助服务终端设备运行 通用Windows应用,使用指定的访问权限功能。对于一个亭子 设备(Windows 10企业版或教育版)运行经典Windows 应用程序,使用 Shell Launcher 将自定义用户界面设置为 外壳
来自Assigned access (Industry 8.1):
管理员可以使用指定的访问权限来限制用户帐户 访问单个应用程序。您可以使用指定的访问权限进行设置 单功能设备,如餐厅菜单或贸易展示 示出。
下表列出了可在每个Windows 10版本上用于创建自助服务终端设备的应用程序类型。
通用Windows应用程序基于通用Windows平台构建 (UWP),最初在Windows 8中作为Windows运行时引入。 经典Windows应用程序使用经典Windows平台(CWP) (例如,COM,Win32,WPF,WinForms等)并且通常是推出的 使用.EXE或.DLL文件。
答案 1 :(得分:1)
您可以在MainWindow.xaml.cs中添加最大化的windowstate来执行此操作。
public MainWindow()
{
InitializeComponent();
this.WindowState = WindowState.Maximized;
}
答案 2 :(得分:0)
在ContentRendered事件处理程序中设置Window状态:
protected override void OnStartup(StartupEventArgs e)
{
Application.Current.MainWindow.ContentRendered += (s, a) =>
Application.Current.MainWindow.WindowState = WindowState.Maximized;
}
答案 3 :(得分:0)
解决方案(hack)是在启动时使用Task Scheduler打开任何其他窗口(例如powershell),在另一个窗口打开后,我们可以使用PowerShell脚本调用Alt + Tab。
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[System.Windows.Forms.SendKeys]::SendWait("%{TAB}")