如何使用C#在UWP项目(不是全屏!)中最大化窗口?我尝试使用窗口边界作为参数的方法TryResizeView,但没有任何反应。
由于
答案 0 :(得分:2)
此时UWP无法做到这一点。所以,我无法让你最大化,但我可以让你非常接近:
var av = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView();
var di = Windows.Graphics.Display.DisplayInformation.GetForCurrentView();
var bounds = av.VisibleBounds;
var factor = di.RawPixelsPerViewPixel;
var size = new Windows.Foundation.Size(bounds.Width * factor, bounds.Height * factor);
size.Height -= 100;
size.Width -= 100;
av.TryResizeView(size);
基本上,减去100(允许任务)。这在大多数情况下都有效,但如果没有真正的屏幕边界测量,我认为这是我们现在能做的最好的。对不起,我不能给你更多。 TaskBar大小(和位置)是变量。
这是在http://aka.ms/template10(https://github.com/Windows-XAML/Template10/blob/master/Template10%20(Library)/Utils/MonitorUtils.cs#L58)
中实施的
祝你好运!
答案 1 :(得分:0)
这个答案对我不起作用。我将其修改为,,,,现在它可以正常工作。
var av = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView();
var di = Windows.Graphics.Display.DisplayInformation.GetForCurrentView();
var bounds = av.VisibleBounds;
var factor = di.RawPixelsPerViewPixel;
Size size = new Size(di.ScreenWidthInRawPixels, di.ScreenHeightInRawPixels);
size.Height -= 100;
size.Width -= 100;
av.TryResizeView(size);
答案 2 :(得分:0)
这是不涉及手动调整大小的解决方案。它与单击最大化按钮具有相同的作用。即使这些调整大小的解决方案过去一直有效,但它们似乎现在(运行于1909年)似乎还没有。
用于最大化和最小化活动窗口的Windows系统键盘快捷方式分别是WinKey +向上箭头,WinKey +向下箭头。您的UWP应用可以使用InputInjector模拟自身的击键。
首先,您必须在应用清单中将InputInjector启用为受限功能。
<Package
...
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="... rescap">
...
<Capabilities>
<rescap:Capability Name="inputInjectionBrokered"/>
</Capabilities>
</Package>
然后您可以使用以下内容:
using Windows.UI.Input.Preview.Injection;
public static void MaximizeCurrentWindow()
{
var inputInjector = InputInjector.TryCreate();
var winKeyDown = new InjectedInputKeyboardInfo
{
VirtualKey = (ushort)VirtualKey.LeftWindows
};
var upArrowKeyDown = new InjectedInputKeyboardInfo
{
VirtualKey = (ushort)VirtualKey.Up
};
var winKeyUp = new InjectedInputKeyboardInfo
{
VirtualKey = (ushort)VirtualKey.LeftWindows,
KeyOptions = InjectedInputKeyOptions.KeyUp
};
var upArrowKeyUp = new InjectedInputKeyboardInfo
{
VirtualKey = (ushort)VirtualKey.Up,
KeyOptions = InjectedInputKeyOptions.KeyUp
};
InjectedInputKeyboardInfo[] macro = { winKeyDown, upArrowKeyDown, winKeyUp, upArrowKeyUp};
inputInjector.InjectKeyboardInput(macro);
}