WPF全屏模式

8
我正在创建一个WPF应用程序,它具有以下XAML结构。
<Window>
   <ScrollViewer>
       <Grid>
       ...
       ...
       ...
       </Grid>
   </ScrollViewer>
</Window>

我希望在按下“F”键时全屏运行应用程序,为此我尝试了以下代码。

private void window1_KeyUp(object sender, KeyEventArgs e)
{

  if(e.Key == Key.F)
  {
       if(!isFullScreen)
       {
            height = mePlayer.Height;
            width = mePlayer.Width;
            mePlayer.Height = System.Windows.SystemParameters.PrimaryScreenHeight;
            mePlayer.Width = System.Windows.SystemParameters.PrimaryScreenWidth;
            this.Background = new SolidColorBrush(Colors.Black);
            this.WindowStyle = WindowStyle.None;
            this.WindowState = WindowState.Maximized;
            isFullScreen = !isFullScreen;
       }
       else
       {
            mePlayer.Height = height;
            mePlayer.Width = width;
            this.Background = new SolidColorBrush(Colors.White);
            this.WindowStyle = WindowStyle.SingleBorderWindow;
            isFullScreen = !isFullScreen;
        }
   }
 }

我遇到了以下两个问题:
  1. 当我按F键进入全屏模式时,窗口会进入全屏模式,但任务栏仍然可见。
  2. 在全屏模式下,滚动条变为可见。
我不知道为什么会出现这种情况。我认为滚动条之所以可见是因为任务栏的影响。非常感谢您提供任何帮助。
以下是发生情况的屏幕截图: enter image description here

关于 NO 1: 任务栏是什么意思(您是指窗口的标题栏吗)?关于 NO 2: 当窗口进入全屏模式时,您希望滚动条执行什么操作? - Hakan Fıstık
请查看我添加的屏幕截图。我不想在全屏模式下出现滚动条。我添加了滚动查看器,因为用户可以自由调整窗口大小。 - Bhavesh Jadav
1个回答

2
我不确定你为什么要做所有这些额外的事情,但是只做这个似乎已经足够了,并且运行良好:
private void window1_KeyUp(object sender, KeyEventArgs e)
{

  if(e.Key == Key.F)
  {
       if(!isFullScreen)
       {
            this.WindowStyle = WindowStyle.None;
            this.WindowState = WindowState.Maximized;
            this.SC.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden;
            this.SC.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden;
            isFullScreen = !isFullScreen;
       }
       else
       {
            this.WindowStyle = WindowStyle.SingleBorderWindow;
            this.WindowState = WindowState.Normal;
            this.SC.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
            this.SC.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
            isFullScreen = !isFullScreen;
        }
   }
 }

SC是我的滚动视图。


添加了隐藏滚动条的功能,我之前漏掉了这个问题的一部分。 - Maxime Tremblay-Savard
我尝试了上述代码。它只是隐藏了滚动条。而且在滚动条的位置上出现了黑色条纹(请看屏幕截图中的红色标记),任务栏仍然可见。我仍然可以使用鼠标滚轮进行滚动。请查看屏幕截图:http://i.imgur.com/0jLMCcs.jpg - Bhavesh Jadav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接