2015-06-19 2 views
8

Я создаю приложение WPF, которое имеет следующую структуру XAML.WPF полноэкранный режим

<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

+0

около NO 1: Что вы имеете в виду под панелью задач (Вы имеете в виду заголовок окна)? о NO 2: Что вы хотите от полосы прокрутки, когда окно переходит в полноэкранный режим? –

+0

Проверьте снимок экрана, который я добавил. Я не хочу полосу прокрутки в полноэкранном режиме. Я добавил средство просмотра прокрутки, потому что пользователи могут свободно перемещаться в окно, если они изменяют размер окна. –

ответ

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 мой ScrollViewer.

+0

Добавлено скрытие полос прокрутки, я пропустил эту часть вопроса. –

+0

Я пробовал код. Он просто скрывает полосу прокрутки. Вместо полосы прокрутки видна черная полоса (см. Красную отметку на снимке экрана), а панель задач все еще видна. Я все еще могу прокручивать с помощью колеса мыши. см. снимок экрана. http://i.imgur.com/0jLMCcs.jpg –