gpt4 book ai didi

c# - WPF 用户控件全屏最大化?

转载 作者:行者123 更新时间:2023-11-30 20:55:00 24 4
gpt4 key购买 nike

我有一个窗口,在窗口内,我有一个用户控件。我只想在点击 F11 时最大化或扩展(全屏)用户控件。我现有的代码适用于我的窗口,

if (e.Key == Key.F11)
{
WindowStyle = WindowStyle.None;
WindowState = WindowState.Maximized;
ResizeMode = ResizeMode.NoResize;
}

但我需要为我的用户控件提供此功能。有没有类似的方法来最大化用户控件?请给我一些建议。提前致谢。

最佳答案

我认为您不需要 PINvoke 即可在没有 Windows 工具栏的情况下获得全屏。这个想法是让您的用户控制并将其放置在您全屏显示的新窗口中。我就是这样做的。

private Window _fullScreenWindow;
private DependencyObject _originalParent;

if (e.Key == Key.F11)
{
if(_fullScreenWindow == null) //go fullscreen
{
_fullScreenWindow = new Window(); //create full screen window
_originalParent = _myUserControl.Parent;
RemoveChild(_originalParent, this); //remove the user control from current parent
_fullScreenWindow.Content = this; //add the user control to full screen window
_fullScreenWindow.WindowStyle = WindowStyle.None;
_fullScreenWindow.WindowState = WindowState.Maximized;
_fullScreenWindow.ResizeMode = ResizeMode.NoResize;

_fullScreenWindow.Show();
}
else //exit fullscreen
{
var parent = Parent;
RemoveChild(parent, this);
_fullScreenWindow.Close();
_fullScreenWindow = null;

AddChild(viewerControlParent, this);
}
}

可以在这个答案中找到 RemoveChild 的实现(以及 AddChild 的类似实现): https://stackoverflow.com/a/19318405

关于c# - WPF 用户控件全屏最大化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18616849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com