更新: 我现在已经发布了一个更具体的后续问题。我提供了一个假设性的例子,说明我想要实现的内容。不过,即使我的问题没有被完全回答,我仍然会接受这里的答案。
更新: 我现在已经发布了一个更具体的后续问题。我提供了一个假设性的例子,说明我想要实现的内容。不过,即使我的问题没有被完全回答,我仍然会接受这里的答案。
我认为WPF很适合您的项目。我喜欢《Pro WPF in C# 2008: Windows Presentation Foundation with .NET 3.5》这本书,它涵盖了您所问的大部分主题。
如果您提出更具有针对性的问题,您可能会得到更好的答案。您的问题范围太广,不容易简洁明了地回答。
WPF 通过轻松地在简单形状和控件内容之间移动形状绘制代码,使得为这样的项目重构设计更加容易。如果您需要自定义控件的丰富性,WPF 允许相当平滑的过渡。
大多数图形可以在 XAML 中定义,这意味着您可以通过 Illustrator 或任何生成标准 SVG 矢量图形的程序,通过 SVG-XAML 转换器 导出它们。
我喜欢 WPF Unleashed,它对 2D 图形有一个很好的讨论,并介绍了如何使用 DrawingContext 类进行视觉编辑。
Word:你有一个带有格式标记和其他东西的WordDocument数据结构,你使用所需的刷子/画笔和字体逐个字符/单词或单词块进行绘制。你可能还想绘制背景等...例如,如果用户更改了1个特定块的字体,则你的WordDocument必须更改一些内容以反映该字体更改。然后你可以做一个myForm.Invalidate()来重新绘制你的窗体(从而更新你的字体)。=> 动态更新你的GUI。
Sketchpad:你需要像线、点、三角形等数据结构。每次OnPaint被触发时,你都可以动态地进行绘制, 例如:myGraphics.DrawLine(..), myGraphics.DrawCircle(..)
Finale也是类似的。
关于你的问题,没有普适的答案 - 它太泛泛了。
你是在谈论动态创建的控件,标准的UI组件(下拉菜单、按钮)吗?
它是矢量图形 - 像绘画一样,还是2D图像处理 - 或者是3D吗?