【问题标题】:Make WPF Application Fullscreen (Cover startmenu)使 WPF 应用程序全屏(覆盖开始菜单)
【发布时间】:2010-08-30 22:34:25
【问题描述】:

我想让我的 WPF 应用程序全屏显示。现在开始菜单阻止它覆盖所有内容并将我的应用程序向上移动。这就是我的 MainWindow.xaml 代码:

<Window x:Class="HTA.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    mc:Ignorable="d" 
    WindowStyle="None" ResizeMode="NoResize"
    WindowStartupLocation="CenterScreen" 
    Width="1024" Height="768">

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    您可能缺少WindowState="Maximized",请尝试以下操作:

    <Window x:Class="HTA.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525"
        WindowStyle="None" ResizeMode="NoResize"  
        WindowStartupLocation="CenterScreen" WindowState="Maximized">
    

    【讨论】:

      【解决方案2】:
      <Window x:Class="HTA.MainWindow"
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          mc:Ignorable="d" 
          ResizeMode="NoResize"
          WindowStartupLocation="CenterScreen" 
          Width="1024" Height="768"
          WindowState="Maximized" WindowStyle="None">
      

      窗口状态为最大化,窗口样式为无

      【讨论】:

        【解决方案3】:

        您也可以在运行时执行以下操作:

        • 为窗口指定名称 (x:Name = "HomePage")
        • 在构造函数中只需将 WindowState 属性设置为 Maximized,如下所示

        HomePage.WindowState = WindowState.Maximized;

        【讨论】:

        • 不应将代码隐藏用于可在 xaml 中设置的属性。
        • @PetervanKekem 当窗口默认情况下没有最大化但当用户希望通过单击按钮等时最大化时,这非常有用。
        • 是的,但在答案中它是在构造函数中设置的。 (当使用 MVVM 模式时,您应该为此使用 ViewModel 类,并将 WindowState 绑定到属性)
        【解决方案4】:
        window.WindowStyle = WindowStyle.None;
        window.ResizeMode = ResizeMode.NoResize;
        window.Left = 0;
        window.Top = 0;
        window.Width = SystemParameters.VirtualScreenWidth;
        window.Height = SystemParameters.VirtualScreenHeight;
        window.Topmost = true;
        

        适用于多个屏幕

        【讨论】:

          【解决方案5】:

          当您通过代码执行此操作时,诀窍就是调用

          WindowStyle = WindowStyle.None;
          

          先是后

          WindowState = WindowState.Maximized;
          

          让它显示在任务栏上。

          【讨论】:

          • 这是在代码中在全屏和非全屏之间切换时的技巧
          【解决方案6】:

          如果您希望用户在 运行时WindowStyle.SingleBorderWindowWindowStyle.None 之间进行切换,您可以在代码后面添加:

          使应用全屏显示:

          RootWindow.Visibility = Visibility.Collapsed;
          RootWindow.WindowStyle = WindowStyle.None;
          RootWindow.ResizeMode = ResizeMode.NoResize;
          RootWindow.WindowState = WindowState.Maximized;
          RootWindow.Topmost = true;
          RootWindow.Visibility = Visibility.Visible;
          

          返回单边框样式:

          RootWindow.WindowStyle = WindowStyle.SingleBorderWindow;
          RootWindow.ResizeMode = ResizeMode.CanResize;
          RootWindow.Topmost = false;
          

          请注意,如果没有RootWindow.Visibility 属性,您的窗口将不会覆盖开始菜单,但是如果您在启动时将应用程序设为全屏,则可以跳过此步骤。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-09-02
            • 2021-09-03
            • 1970-01-01
            • 2021-07-06
            • 1970-01-01
            • 2017-05-28
            相关资源
            最近更新 更多