c# - WPF full screen on maximize -
i want have wpf window go in full screen mode, when f11 pressed or maximize button in right top corner of window pressed.
while following works charm pressing f11:
private void window_keydown(object sender, keyeventargs e) { if (e.key == key.f11) { windowstyle = windowstyle.none; windowstate = windowstate.maximized; resizemode = resizemode.noresize; } }
this still displays windows taskbar (tested windows 7):
protected override void onstatechanged(eventargs e) { if (windowstate == windowstate.maximized) { windowstyle = windowstyle.none; windowstate = windowstate.maximized; resizemode = resizemode.noresize; } base.onstatechanged(e); }
what missing here? or can more elegant?
wpf seems making decision whether go full-screen or respect taskbar based on windowstyle @ time of maximisation. kludgy effective solution switch window non-maximised, set windowstyle, , set window maximised again:
private bool _instatechange; protected override void onstatechanged(eventargs e) { if (windowstate == windowstate.maximized && !_instatechange) { _instatechange = true; windowstate = windowstate.normal; windowstyle = windowstyle.none; windowstate = windowstate.maximized; resizemode = resizemode.noresize; _instatechange = false; } base.onstatechanged(e); }
although code ugly, transition normal , maximized doesn't seem make user experience worse. on display, noticed flicker both f11 code , kludge maximise, not noticeably worse on kludge maximise. mileage may vary!
Comments
Post a Comment