如何保存和使用应用程序的窗口大小?

2024-03-13

使用 .NET 4,在关闭时保存应用程序的窗口大小和位置并在下次运行时使用这些值启动应用程序的窗口的最佳方法是什么?

我不想接触任何类型的注册表,但不知道是否有某种 app.config(类似于 ASP.NET 应用程序的 web.config)可以用于 Windows Presentation Foundation 应用程序。

Thanks.


描述

Windows 窗体

  • 在应用程序设置中创建属性地点X, 地点Y, 窗宽, 窗口高度(类型int)
  • 保存位置和大小Form_FormClosed
  • 加载并应用位置和尺寸Form_Load

Sample

private void Form1_Load(object sender, EventArgs e)
{
    this.Location = new Point(Properties.Settings.Default.LocationX, Properties.Settings.Default.LocationY);
    this.Width = Properties.Settings.Default.WindowWidth;
    this.Height = Properties.Settings.Default.WindowHeight;
}

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
    Properties.Settings.Default.LocationX = this.Location.X;
    Properties.Settings.Default.LocationY = this.Location.Y;
    Properties.Settings.Default.WindowWidth = this.Width;
    Properties.Settings.Default.WindowHeight = this.Height;
    Properties.Settings.Default.Save();
}

更多信息

  • Windows 窗体的应用程序设置 http://msdn.microsoft.com/en-us/library/0zszyc6e.aspx
  • MSDN - Form.Load 事件 http://msdn.microsoft.com/en-us/library/system.windows.forms.form.load.aspx
  • MSDN - Form.Closed 事件 http://msdn.microsoft.com/en-us/library/system.windows.forms.form.closed.aspx

WPF

  • 在应用程序设置中创建属性地点X, 地点Y, 窗宽, 窗口高度(类型double)
  • 保存位置和大小MainWindow_Closed
  • 加载并应用位置和尺寸MainWindow_Loaded

Sample

void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
    this.Left = Properties.Settings.Default.LocationX;
    this.Top = Properties.Settings.Default.LocationY;
    this.Width = Properties.Settings.Default.WindowWidth;
    this.Height = Properties.Settings.Default.WindowHeight;
}

void MainWindow_Closed(object sender, EventArgs e)
{
    Properties.Settings.Default.LocationX = this.Left;
    Properties.Settings.Default.LocationY = this.Top;
    Properties.Settings.Default.WindowWidth = this.Width;
    Properties.Settings.Default.WindowHeight = this.Height;
    Properties.Settings.Default.Save();
}

更多信息

  • 应用程序设置 http://msdn.microsoft.com/en-us/library/0zszyc6e.aspx
  • MSDN - FrameworkElement.Loaded 事件 http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.loaded%28v=vs.95%29.aspx
  • MSDN - Window.Closed 事件 http://msdn.microsoft.com/en-us/library/system.windows.window.closed.aspx

我已经测试了 WinForms 和 WPF。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何保存和使用应用程序的窗口大小? 的相关文章

  • 纹理映射 C++ OpenGL

    我已经阅读了相关内容 包括 Nehe 和此处的解决方案 但我找不到具体的答案 我正在尝试加载一张名为stars jpg 的照片 我想通过使用 uv 坐标映射它来使其成为场景的背景 方法是 glBegin GL QUADS glTexCoor
  • MigraDoc 项目符号列表(漏洞)

    在我的解决方案中 我在 PDF 文件中使用项目符号列表 它看起来像这样 Solcellepaneler kr ver hverken autoriseret service eller tidskr vende vedligehold So
  • 使用 strcpy 从整数生成指针,无需进行强制转换

    我不明白我做错了什么 我正在学习 C 很抱歉 如果这显然是错误的 但我正在尝试使用uthash http uthash sourceforge net 制作股票及其价格的哈希图 但是当我将股票添加到哈希映射时 我收到上述错误 我所做的就是从
  • 确保 unsigned int/long 始终在 C# 中的检查上下文中执行

    有没有人觉得奇怪 uint 和 ulong 的默认上下文是未检查的 而不是检查的 因为它们旨在表示永远不能为负的值 因此 如果某些代码试图违反该约束 在我看来 自然且首选的行为是抛出异常 而不是返回最大值 这很容易使重要数据处于无效状态并且
  • 通过 TCP/.NET SSLStream 发送文件很慢/无法正常工作

    我正在编写一个与 SSL 配合使用的服务器 客户端应用程序 通过SSLStream 它必须做很多事情 不仅仅是文件接收 发送 目前 它的工作原理是 只有一个连接 我总是使用从客户端 服务器发送数据SSLStream WriteLine 并使
  • 从 C++ 中的函数返回二维数组[重复]

    这个问题在这里已经有答案了 可能的重复 C 从函数返回多维数组 https stackoverflow com questions 3716595 c returning multidimension array from function
  • Apple IOS 上的 C# 应用程序 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有基于 C Net 的应用程序 有什么方法可以在 Apple IOS 上运行这些应用程序吗 我没有资
  • C# While 循环与 For 循环?

    在 C 中 一个问题已经困扰我一段时间了 它的 While 和 For 循环之间的实际主要区别是什么 它只是纯粹的可读性吗 在 for 循环中本质上可以做的所有事情都可以在 while 循环中完成 只是在不同的地方 举这些例子 int nu
  • C++中的虚方法表存放在哪里?

    我想知道类对象 不是实例 而是类 如何存储在内存中 class A public int a virtual void f virtual A class B public A public int b void f final overr
  • 如何在控制台程序中获取鼠标位置?

    如何在 Windows 控制台程序中用 C 获取鼠标单击位置 点击时返回鼠标位置的变量 我想用简单的文本命令绘制一个菜单 这样当有人点击时 游戏就会注册它并知道位置 我知道如何做我需要做的一切 除了单击时获取鼠标位置 您需要使用 Conso
  • 随机排列

    我无法找到一种随机洗牌元素的好方法std vector经过一些操作后 恢复原来的顺序 我知道这应该是一个相当简单的算法 但我想我太累了 由于我被迫使用自定义随机数生成器类 我想我不能使用std random shuffle 无论如何这没有帮
  • 在 Ubuntu 16.04 上编译 PCL 1.7,CMake 生成的 Makefile 中出现错误

    我正在尝试让 PCL 1 7 点云库 而不是其他 pcl 在 Ubuntu 16 04 上运行 我最终希望用于 C 的东西 但现在我只是想让这些例子工作 我使用的是 Ubuntu GNU 5 3 1 附带的默认编译器和 Cmake 版本 3
  • 发送/捕获 SIGTERM 的 Win32 API 模拟

    在 POSIX OS 下 有信号 API 允许向进程发送信号以将其关闭 使用kill 您可以使用sigaction捕获它并执行您需要的操作 然而 Win32不是POSIX系统 所以 如何处理可能出现的关闭事件 例如来自 任务管理器 中的 结
  • 使用客户端 hello 消息进行 TLS 协议检测

    我需要检测网络流量中的 https 数据包 到目前为止 我将所有 443 标记为 https 但我不想再在这种情况下使用端口信息 检查客户端问候消息是否足够 Check 22 and version info 0300 0301 or 03
  • 比较 C# 中的对象属性[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动
  • 如何正确对齐 WPF GeometryGroup 中的路径?

    我正在使用一个GeometryGroup在圆的中心绘制一个符号 下面的示例显示了我在对此进行实验时的尝试之一 它具有从同一原点 32 32 出发的三条直线
  • Opencv 对象检测:ORB GPU 检测器和 SURF GPU 描述符提取器

    我只是做了一个小实验来尝试不同的检测器 描述符组合 我的代码使用 ORB GPU 检测器来检测特征 并使用 SURF GPU 描述符来计算描述符 我使用 BruteForceMatcher GPU 来匹配描述符 并使用 knnMatch 方
  • QT C++ QRegularExpression 多个匹配

    我想使用正则表达式从 QString html 中提取信息 我明确想使用正则表达式 无解析器解决方案 和类Q正则表达式 http qt project org doc qt 5 0 qtcore qregularexpression htm
  • 如何从 WPF 应用程序访问 Windows 文件预览图标

    我在一个目录中有一堆图片和视频 需要在WPF应用程序中显示 我正在考虑将Win7大图标本身显示为预览图像 因为这将节省我从视频文件中抓取适当帧的工作 因为 Windows 已经很好地完成了这项工作 有任何代码片段可以访问此 Shell 图标
  • 创建进程的多个子进程并维护所有 PID 的共享数组

    我已经分叉了几次 并用 C 创建了一堆子进程 我想将它们所有的 PID 存储在一个共享数组中 PID 的顺序并不重要 例如 我创建了 32 个进程 我想要一个 32 个整数长的数组来存储每个 PID 并且每个进程都可以访问 最好的方法是什么

随机推荐

  • ErrorColumn 值不作为 Lineage ID 存在

    在插入目标表期间 发生的任何错误都会被重定向到错误表 我们可以在其中看到ErrorCode and ErrorColumn 问题是我们得到了一个值ErrorColumn它不存在于包中的任何地方 也就是说 没有一个列具有LineageID等于
  • 当我上传到服务器时相机图像发生旋转

    我要么拍照 要么从图库中选择一张照片 然后按应有的方式在 ImageView 中显示它 就旋转而言 但是 每当我将其上传到服务器时 它总是以横向模式上传 即使它在我的画廊中处于纵向模式 我该如何解决这个问题 private void tak
  • Rails 4 + Capistrano 3:致命:部署时无法从远程存储库读取

    我在使用 Capistrano 3 部署 Rails 4 应用程序时遇到以下错误 INFO 87512eb8 Running usr bin env chmod x tmp magnificent git ssh sh as email p
  • svn cleanup: sqlite: 数据库磁盘映像格式错误

    我试图做一个svn cleanup因为我无法在工作副本中提交更改 并且出现以下错误 sqlite 数据库磁盘映像格式错误 我现在能做什么 首先 打开command terminal在存储库根目录 具有 svn作为子文件夹 cd path t
  • 用于 ruby​​ gems 的新 10.9 OSX 的命令行工具?

    安装 OSX Mavericks 10 9 演示后 我在运行捆绑包后得到这个 Gem Installer ExtensionBuildError ERROR Failed to build gem native extension User
  • R - 根据每行的函数获取矩阵的列索引

    gt set seed 2014 gt m lt matrix sample 10 16 replace TRUE nrow 4 gt m 1 2 3 4 1 3 6 1 7 2 2 1 2 6 3 7 10 7 7 4 4 7 1 5 对
  • 将多行文本边框作为更多文本中的块

    我正在尝试在段落内的多行文本周围设置边框 我基本上不希望边框出现在每一行上 而是出现在所有行周围 我意识到我可以将所有文本包装在一个 div 中 但它会阻止该文本与段落的其余部分 我想要一个流畅的段落 并且对于多行中的一个句子 有一个顶部边
  • C++ 匹配文件中的字符串并获取行号

    我有一个包含前 1000 个婴儿名字的文件 我想询问用户一个名字 搜索文件 并告诉用户该名字对于男孩名字的排名以及女孩名字的排名 如果它不是男孩名字或女孩名字 它会告诉用户它不属于该性别的流行名字 该文件的布局如下 Rank Boy Nam
  • 使用私钥连接到服务器时 pysftp AuthenticationException

    我正在尝试连接到 SFTP 服务器 我有一个私钥和一个密码 我尝试阅读SO上的相关问题 但一直无法成功连接 这是我尝试过的 pysftp Connection host
  • django-rest-framework-gis 相关领域

    我有一个地理模型结构 其中多个事件可以具有相同的位置 class Event models Model name models CharField max length 128 blank True null True location m
  • 是否有任何方法或可能性来隐藏客户端提出的网络请求

    我已经在node js上创建了登录和注册端点 使用react js创建了用于登录和注册以及提交表单的必要表单和字段 将数据发布到服务器并获得正确的响应 在浏览器内的网络部分下 用户可以看到端点和用户提供的数据 用户名和密码 是否有可能向用户
  • 异常:集合被修改;枚举操作可能无法在设置项目中的窗体 Close 上执行

    我创建了一个用 C 4 0 构建的窗口窗体应用程序的安装项目 我在我的测试 PC 上测试了该设置 其中安装了 Vs 2010 Ultimate 并且运行良好 后来为了测试该应用程序 我将其安装在另一台没有 VS 的机器上 每次我尝试关闭表单
  • 从 C 语言的文本文件中读取逗号分隔值[重复]

    这个问题在这里已经有答案了 我对 C 编程非常陌生 这是作业的一部分 我正在尝试读取以下格式的逗号分隔文本文件 value1 value2 在 C 中并尝试将它们作为 string 和 int 参数传递到函数中 我尝试过使用 sscanf
  • Android:在 Flickr 上上传图片

    我必须制作一个 Android 应用程序来将图片从手机上传到 Flickr 我开始读书API Flickr 文档 http www flickr com services api 但仍然想了解如何进行身份验证以及如何上传 我也在这里阅读了类
  • MyBatis - jdbcTypeForNull Oracle

    我将 MyBatis 与 Oracle 11g R2 数据库结合使用 我正在使用 MyBatis 3 3 和 ojdbc6 12 1 0 2 我的问题是每当我尝试插入一个空对象时我都会得到以下信息 org springframework j
  • os.mknod() 在 MacOS 上失败?

    Is os mknod Mac 上的特权调用 总是失败 不允许操作 In 1 import os In 2 os mknod tmp test123 OSError Traceback most recent call last
  • 为什么 vscode 保存 java 文件时遇到问题?我应该检查哪个设置?

    在 vs code 中 我按 Ctr N 然后按 Ctr Shift S 这是 另存为 选项的排序方式 当我尝试将文件另存为 java 时 它会自动保存为类文件 当然 当我尝试不使用排序器保存文件时也会发生这种情况 因此创建 java 文件
  • Kotlin 的可空性和 LiveData

    我想将 LiveData 与 Kotlin 一起使用 并且值不应为空 你如何处理这个问题 也许是 LiveData 的包装 在这里寻找好的模式 举个例子 class NetworkDefinitionProvider MutableLive
  • 自定义 jQuery UI 1.8 中的自动完成显示

    我正在尝试自定义 JQuery 1 8 中自动完成元素的外观 我使用了来自的示例JQuery UI 网站 http jqueryui com autocomplete custom data term autocomplete source
  • 如何保存和使用应用程序的窗口大小?

    使用 NET 4 在关闭时保存应用程序的窗口大小和位置并在下次运行时使用这些值启动应用程序的窗口的最佳方法是什么 我不想接触任何类型的注册表 但不知道是否有某种 app config 类似于 ASP NET 应用程序的 web config