【问题标题】:Simple dialog based application using C# [closed]使用 C# 的基于对话框的简单应用程序 [关闭]
【发布时间】:2013-04-09 02:55:58
【问题描述】:
我想开发一个简单的windows应用程序(使用C#)如下:
- 一个简单的基于对话框的应用程序,具有三个屏幕
- 第一个屏幕只是一个欢迎用户的屏幕,并说明如何进行操作
- 第二个是一个拖放屏幕,用户可以在其中拖放文件(图像文件)
- 然后它对提供的图像执行操作,并以列表视图的形式显示实时结果以及状态和完成百分比
我已经有了图像处理代码,这对我来说很容易,但我对应用程序本身很迷茫......
这是我的问题:
- 我应该使用 winforms 还是 WPF 进行开发?我想添加自己的字体,让我使用的图像具有透明度,并显示自定义列表视图单元格和控件...
- 在基于对话框的应用程序中拥有多个屏幕的最佳方式是什么?我正在考虑使用 TabControl,隐藏标题并在用户单击“下一步”按钮后以编程方式从第一个屏幕切换到第二个屏幕,然后在文件被拖放到窗口后切换到第三个屏幕......
- 以及让后台进程对图像文件执行操作、在不阻塞 UI 的情况下为用户提供一些反馈(带百分比的进度条)的最佳方式是什么
【问题讨论】:
标签:
c#
wpf
winforms
dialog
【解决方案1】:
我应该使用 winforms 还是 wfp 进行开发?我想添加自己的字体,
对我使用的图像具有透明度并显示自定义列表视图单元格
和控制
我投票给 WPF。
- 它支持更多的拖放操作
- 它有更好的用户界面,例如圆角和可能的透明度(没有使用透明度)
- 非常容易自定义列表视图和控件
在基于对话框的对话框中拥有多个屏幕的最佳方式是什么
应用
对于拥有多个屏幕,您可以使用 Frame,并使用其源更改为不同的视图。使用选项卡控件也可以,但它允许用户跳过第 2 页,而是直接转到第 3 页。
以及拥有一个后台进程的最佳方式是什么?
对图像文件执行操作
BackgroundWorker 将对此很有用。它应该是线程安全的。
【解决方案2】:
WPF 在外观上更好,但我认为 WinForm 在你的情况下已经足够好了。
您可能需要将字体复制到 Windows 字体文件夹才能使用它。
但是需要UAC的授权。
我也喜欢TabControl。
但是,如果您要限制用户必须遵循您的进度(不能跳过某些选项卡),您可以使用多面板来代替它。
如果您的后台工作非常简单,您可以使用BackgroundWorker 组件。
否则你需要创建线程。
【解决方案3】:
这是我的问题:
- 我应该使用 winforms 还是 wfp 进行开发?我想添加我自己的字体,在
上有透明度
这真的取决于。你知道 windows 窗体和/wpf 吗?如果你都使用 WPF
但如果您不知道,请选择 Windows 窗体,因为它很简单。
我使用并显示自定义列表视图单元格和控件的图像...
- 在基于对话框的应用程序中拥有多个屏幕的最佳方式是什么?我正在考虑使用 TabControl,隐藏标题并在用户单击“下一步”按钮后以编程方式从第一个屏幕切换到第二个屏幕,然后在文件被拖放到窗口后切换到第三个屏幕......
一旦你得到一些工作,我们很容易给你我们的意见。
以及让后台进程对图像文件执行操作、在不阻塞 UI 的情况下为用户提供一些反馈(带百分比的进度条)的最佳方式是什么
这两个框架都允许您这样做。这里有很多选项,最简单但非常有用的是 BackgroundWorked。
非常感谢您抽出宝贵时间并在这些主题上提供的帮助!