相关疑难解决方法(0)

如何使用鼠标光标在屏幕上最大化WPF窗口?

根据WindowStartupLocation属性的MSDN文档:

设置CenterScreen会使窗口位于包含鼠标光标的屏幕中央.

虽然CenterScreen字段的MSDN文档本身定义得不那么明确:

窗口的启动位置是打开它的屏幕的中心.

一个简单的测试显示这应该工作:

MainWindow.xaml

<Window x:Class="CenterScreenTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Button Click="button_Click">Open Window</Button>
</Window>
Run Code Online (Sandbox Code Playgroud)

MainWindow.xaml.cs

using System.Windows;

namespace CenterScreenTest
{
    public partial class MainWindow
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        void button_Click(object sender, RoutedEventArgs e)
        {
            Window window = new Window();
            window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
            window.Show();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果在双监视器系统上测试它,您可以看到当您单击按钮时,新窗口将位于鼠标光标所在的屏幕上.这正是它应该如何运作的.

但是,如果在显示窗口之前尝试将窗口设置为最大化,则新窗口将仅在启动应用程序的显示器上最大化.将button_Click事件处理程序更改为以下内容以查看我的意思:

void button_Click(object sender, RoutedEventArgs e)
{
    Window window = new Window();
    window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
    window.WindowState = WindowState.Maximized;
    window.Show();
}
Run Code Online (Sandbox Code Playgroud)

现在,无论单击按钮时鼠标光标在哪里,窗口都只会在启动应用程序的屏幕上最大化.如果在显示窗口状态后将其设置为最大化,则CenterScreen可正常工作.这相当于用户最大化窗口.例如: …

.net wpf multiple-monitors maximize windowstate

44
推荐指数
4
解决办法
6万
查看次数

如何从xaml获取屏幕尺寸?

我在C#上使用wpf来设计GUI,我想从xaml代码中获取屏幕大小(宽度和高度的值).

我知道如何从C#代码中获取它们

   Width = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
   Height = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
Run Code Online (Sandbox Code Playgroud)

但我不知道如何从XAML代码中获取它们.

c# wpf

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

wpf ×2

.net ×1

c# ×1

maximize ×1

multiple-monitors ×1

windowstate ×1