WPF 和 WinForms 有什么区别?

2023-12-28

我正在编写简单的 Windows 应用程序。我不需要数据库支持。为什么我要使用 WPF 而不是 WinForms?


一个明显的答案是 WPF 提供了比 WinForms 更丰富的用户体验,例如允许在用户界面中使用动画(甚至 3D)。

从开发的角度来看,强制将用户界面(在 XAML 中)与业务逻辑(在 VB.NET 或 C# 中)分离大有帮助,这始终是一件好事。

在 Google 中搜索“WPF vs WinForms”会出现许多讨论此问题的页面。我不会在这里重复他们所有的发现,但是这一页 http://mdavey.wordpress.com/2007/09/05/wpf-vs-windows-forms/提出了一些有趣的观点:

  1. WPF 中的数据绑定优于 Windows 窗体提供的数据绑定。
  2. UI 和 C# 业务逻辑可以在 WPF 中清晰分离
  3. 故事板
  4. 数据/控制模板 – 比 Windows 更简洁的方式 表格可以提供。
  5. 风格 – 酷而简单。为所有按钮设计样式非常简单 应用程序具有相同的外观和 感觉。
  6. 即使 VS 设计器出现问题,编写 XAML 代码也很容易。
  7. UI 虚拟化 – 我有 10 万行的网格,勾选了移动 市场。性能会很糟糕 如果不是 UI 可视化 免费的。
  8. 3D 支持。
  9. 没什么科学依据,但是 WPF 中的 UI 开发感觉更快 – 也许只是因为 WPF 应用程序最后看起来更酷 一次迭代,或者可能是因为 发展确实比较快。
  10. 我可以向我的团队添加一名用户体验工程师,并且不需要 C# 他可以施展魔法的知识 表达式混合并给出 前台交易应用程序a 保证获胜的改造 超过商业用户。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 和 WinForms 有什么区别? 的相关文章

  • WPF 列表框 + 扩展器事件

    我在列表框的 ItemTemplate 中有一个 Expander 渲染得很好 我遇到的问题是 我希望在展开和 或选择扩展器时触发 ListBox SelectionChanged 事件 MouseDown 事件似乎没有冒泡到 ListBo
  • .NET - 用户控件拖放 - 子控件

    我有 FlowLayoutPanel 和用户控件 可以拖放重新排序 这种作品 但问题是子控件阻止拖动实际的父 UserControl 所以我的问题是如何启用包含子控件的 UserControl 的拖动 如果我理解正确的话 我遇到了与您相同的
  • 从视图模型调用方法的命令

    好吧 我倾向于避免使用命令 因为它们总是让我感到困惑 但我正在进行一个新项目 并且正在尝试正确构建它 并且在我看来没有任何代码隐藏 基本上我现在想做的就是连接一个按钮来触发一个命令 在我的视图模型上执行一些操作 但不知何故 如此简单的事情仍
  • Control.FindForm 和 ContainerControl.ParentForm 有什么区别

    我想知道两者之间是否有任何功能 或其他 差异Control FindForm and ContainerControl ParentForm 我一直在使用 ParentForm创建我自己的用户控件时 但有什么原因吗 FindForm会是一个
  • 从不同的线程关闭启动屏幕?

    我在用着WindowsForms应用程序库 http msdn microsoft com en us library microsoft visualbasic applicationservices windowsformsapplic
  • Visual Studio 2010 解决方案的 MSBuild 命令行执行无法引用 VS2010 SDK 来构建扩展

    Scenario 包含 VS2010 扩展的解决方案 NET 4 类库 带有 WPF UI 它在视觉工作室内部构建得很好 On the 同一台机器当我尝试通过命令行构建它时 作为构建脚本的一部分 Fails when using this
  • WPF 自定义 TabItem - 控件未显示在 Visual Studio 设计器中

    我创建了一个自定义 TabItem 其中包含 DockPanel 和 Button XAML
  • 如何在WPF中裁剪图像并保存到ImageSource中?

    我是 WPF 的新学员 我有一个问题 我有一个图像 宽度 360 高度 360 在这里 我想裁剪该图像 如下所示 0 0 到 120 120 保存到第一个 ImageSource 对象 120 0 到 240 120 保存到第二个 Imag
  • 带有 Prism 区域适配器的 AvalonDock

    我看到了一些关于 SO 的问题 但似乎没有一个适合我 我希望能够使用伟大的使用 Prism 4 但是 所有示例区域适配器均适用于 Avalondock 1 x 系列 我无法使其工作 有人有关于如何为 AvalonDock 的 LayoutD
  • flowlayoutpanel和水平滚动条问题

    我正在使用一个 flowlayoutpanel 它有很多逻辑上的按钮 我遇到的问题是 当我调整窗口大小时 当窗口变小时 我无法看到所有水平排列的按钮 相反 当窗口变小时 按钮会下降到下一行 谁能帮我解决这个问题 我只是希望按钮水平排列 当窗
  • 为 winforms ComboBox 中的单个项目着色?

    我遇到了一个困境 我有一个表单 其中包含许多组合框 其中包含在某些情况下可能无效 过时的信息 选项 项目 我不能简单地从项目中删除过时的信息 但我确实想在选项无效时为用户提供视觉线索 我正在考虑对项目进行着色 可能是红色 来指示它们是否无效
  • 为什么我的窗口没有被垃圾收集?

    我有一个标准的 CRUD 应用程序 可以处理相当大量的数据 不同的窗口使用 Linq To SQL 访问不同的表 每个窗口本质上都有一个网格 其中的单元格绑定到我正在显示的对象 这是正在发生的事情的一个非常标准的用例 打开窗口A 关闭窗口
  • 在代码后面绑定属性

    我有 WPF 应用程序和其中的一个窗口 让我们在我的 xml 中添加这样的内容
  • Windows 窗体 PictureBox.Image 为空,即使窗体中显示图像

    我正在尝试捕获此设备扫描的指纹 gt http www nitgen com eng product finkey html http www nitgen com eng product finkey html 我能够成功扫描指纹并保存二
  • WPF DataGrid 绑定到 string.Length 而不是字符串文本

    我是 WPF 的新手 并且真诚地尝试自己尽可能多地弄清楚 我已经创建了第一个 DataGrid 控件 并且尝试使用如下字符串列表填充它
  • 可编辑的 WPF 列表框

    我有一个绑定到 WPF 中的 ListBox 的 ObservableCollection 我希望列表框可编辑 并将编辑更改保存到集合中 由于 WPF 不提供可编辑的列表框 因此我尝试通过更改 ListBox ItemTemplate 创建
  • 如何在运行时更改元素样式?

    我有一个元素和多种样式 如何在运行时以编程方式或通过 XAML 绑定在样式之间切换
  • C# WPF 将粘贴在 richtextbox 中的 BitmapImage 转换为二进制

    我有一个 Richtextbox 我计划将其保存到数据库中 该数据库可以加载回同一个 Richtextbox 中 我已经让它工作了 这样我就可以将流程文档保存为 DataFormats XamlPackage 这可以保存图像 但问题是文本不
  • 启动浏览器并将数据从 winform 应用程序传递给它

    我有一个 winform 应用程序 需要在新的浏览器窗口中打开 URL 并向其传递数据 此外 数据太大而无法通过查询字符串参数 有没有办法启动一个新的浏览器实例并以某种方式将数据作为表单数据或会话传递 不完全是您问题的答案 但您可以在窗口中
  • .Net 如何获取 Web 浏览器中单击的元素的 ID

    我想获取 Web 浏览器中单击的元素的 HTML Id 例子 如果我点击 Google 搜索按钮 它应该给我所点击元素的 HTML ID 在本例中是一个按钮 我应该如何实现这一目标 编辑 Webbrowser Web 浏览器控件 如果是针对

随机推荐

  • ES6 模块如何作为 Node 中的脚本运行?

    ES6 模块如何作为 Node 中的脚本运行 当我尝试这个 shebang 时 我收到一个错误 usr bin env node experimental modules usr bin env node experimental modu
  • 暂停线程的执行而不休眠?

    我正在使用 Skype API 它每次收到一条消息都会发回一条消息 我不确定这是否真的is是什么原因造成的 但这是我能得到的最接近的结果 当我发送太多消息时 COM 控件无法处理所有回复 这会导致整个应用程序崩溃 当我使用时会发生这种情况f
  • 为什么 Silverlight 不处理我的自定义浮点属性的转换

    在 Silverlight 4 项目中 我有一个扩展 Canvas 的类 public class AppendageCanvas Canvas public float Friction get set public float Rest
  • 如何计算 pandas 中事件之间的时间

    原始问题 我陷入了以下问题 我试图找出车辆在工厂存放的具体时间和时间 我有一个 Excel 工作表 其中存储了所有事件 这些事件要么是交付路线 要么是维护事件 最终目标是获得一个数据帧 其中给出了车辆登记号以及相应的到达工厂和在那里花费的时
  • GWT - DialogBox.center() 无法正常工作

    我的页面上有一个带有按钮的表格 按钮太多了 我有一个滚动条可以向下滚动表格 按钮 onClick 生成一个对话框 其中包含滚动面板 内容和用于关闭该对话框的按钮 我使用 DialogBox center 将其居中 当我按下表格中的第一个按钮
  • 如何将模拟器连接到 laravel 服务器 localhost:8000

    当我的 Android 应用程序使用 10 0 0 2 8080 连接到 wampserver 中的项目时 我可以连接到 localhost 8080 但我使用 laravel 并且我的 Web 服务位于 localhost 8000 我想
  • Bootstrap 响应式附加菜单

    我想要一个固定菜单 如引导文档 http twitter github com bootstrap base css html 与引导文档上一样 它没有贴在手机上 我有以下代码 div class container div class r
  • 为什么我应该将实现的接口方法声明为“公共”?

    interface Rideable String getGait public class Camel implements Rideable int weight 2 String getGait return mph lope voi
  • 如何在 Windows 10 Powershell 上使用 npm 脚本递归复制整个目录?

    如何在 Windows 10 Powershell 上使用 npm 脚本递归复制整个目录 现在我有以下树 test 1 package json 2 src asd txt asd asd Copy 2 txt asd Copy txt a
  • 如何从通过 Javascript 加载的页面上 __scrape__ 数据

    我想使用 beautifulsoup 刮掉此页面上的评论 https www x s com video id the suburl 评论通过 JavaScript 在点击时加载 评论是分页的 每个页面也会在点击时加载评论 我希望获取所有评
  • Eclipse 的选项卡双击 Visual Studio?

    在 Eclipse 上 每当我双击选项卡时 它就会填充工作区 通过隐藏所有其他视图 如项目树 控制台等 有没有办法在 Visual Studio 上做到这一点 注意 我不是在寻找全屏 只是想要一种整理工作区但仍然可以访问菜单的方法 你在追寻
  • 训练过程中GAN结果图像是相同的

    我正在尝试在 MNIST 数据集上训练 GAN 该代码现在的训练结果好坏参半 问题似乎是生成的图像实际上都是相同的 您可以在下面找到我的完整代码 我尝试环顾四周 看看是否有解决方案 我发现唯一提到的使用randn代替rand但我没有使用ra
  • Summernote 显示已上传到文件夹的图像

    我正在使用非常好的 Summernote 编辑器来构建一个小型网络应用程序 我没有使用图像的默认内联 base64 代码 而是将图像存储在文件夹中 我让那部分按预期工作 我可以单击 图像 图标并选择一个图像 它会以其原始类型 jpg png
  • 如何在网站上嵌入Python解释器

    我正在尝试建立一个教育编码网站 类似于代码学院 http www codecademy com 但坦率地说 我不知道应该采取什么步骤 我能否指出正确的方向 在 web 应用程序中包含一个简单的 python 解释器 一种选择可能是使用 Py
  • 调试时模拟 argparse 命令行参数输入

    该线程是上一个线程的扩展 可以找到here https stackoverflow com questions 50881403 debugging argpars in python 比如说 我有一个代码有两个用途 1 从整数列表中打印最
  • 对未经身份验证的用户和 AJAX 调用的不同响应

    我的 ASP MVC 1 0 网站有一个默认登录页面 基于 OpenId 但这不应该有什么不同 当 AuthorizedAttribute 位于操作 控制器上时 它可以正常工作 不过 我也收到了 AJAX 请求 以下是我对它们所做的事情 i
  • 设置 IPython Notebook 内联图背景不透明

    在 IPython Notebook 3 中 当我使用Inlinematplotlib后端 浏览器中的png图形具有透明背景 我该如何将其设置为白色 最小的例子 matplotlib inline import matplotlib pyp
  • Apache 虚拟主机(子域)访问 LAN 上的不同计算机

    我目前正在尝试配置 Apache HTTP Server 的虚拟主机 子域 以便可以通过 LAN 上的另一台计算机访问它 Apache 与 PHP 和 MySQL 的当前设置在同一台物理机器上本地运行 因此 我有两个虚拟主机设置 开发和 c
  • 根据自定义产品属性值过滤 Woocommerce 产品

    在 Woocommerce 中 我有一个名为restriction id 我想根据某些条件过滤产品限制 ID 例如 如果一个值设置为35在 php 会话变量中 我想过滤掉任何将restriction id 属性设置为的产品35 我会在这里放
  • WPF 和 WinForms 有什么区别?

    我正在编写简单的 Windows 应用程序 我不需要数据库支持 为什么我要使用 WPF 而不是 WinForms 一个明显的答案是 WPF 提供了比 WinForms 更丰富的用户体验 例如允许在用户界面中使用动画 甚至 3D 从开发的角度