我有一个窗口,在窗口内,我有一个用户控件。我只想在F11命中时最大化或扩展(全屏显示)用户控件。
我现有的代码适用于我的窗口,
if (e.Key == Key.F11)
{
WindowStyle = WindowStyle.None;
WindowState = WindowState.Maximized;
ResizeMode = ResizeMode.NoResize;
}
但是我需要UserControl具有此功能。有没有类似的方法可以最大化用户控件?请给我一些建议。在此先感谢。
最佳答案
用户控件没有这样的东西。
我可以认为只有两件事我不确定您要实现。
1)您想要不带“窗口工具栏”的全屏屏幕,为此,您必须致电PINvokes
WPF没有内置的属性来隐藏标题栏的“关闭”按钮,但是您可以通过几行P / Invoke来实现。
首先,将这些声明添加到您的Window类中:
private const int GWL_STYLE = -16;
private const int WS_SYSMENU = 0x80000;
[DllImport("user32.dll", SetLastError = true)]
private static extern int GetWindowLong(IntPtr hWnd, int nIndex);
[DllImport("user32.dll")]
private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
Then put this code in the Window's Loaded event:
var hwnd = new WindowInteropHelper(this).Handle;
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);
然后您就可以了:不再需要关闭按钮。标题栏的左侧也没有窗口图标,这意味着没有系统菜单,即使右键单击标题栏也是如此。
请注意,Alt + F4仍将关闭窗口。如果您不希望在完成后台线程之前关闭窗口,则还可以覆盖OnClosing并将“取消”设置为true。
2)您想在对话框中显示此用户控件,然后您必须使用Window类并将Usercontrol作为Child放置在其中
是的,您当前拥有的对于Windows是正确的。如果不是这种情况,那么我只能认为您的目标是第一个?
关于c# - WPF用户控制全屏显示是否最大化?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18616849/