C#/.NET:在C中创建动态视觉效果#

C#/.NET:在C中创建动态视觉效果#,c#,.net,wpf,winforms,user-interface,C#,.net,Wpf,Winforms,User Interface,注意:我不确定如何命名或标记这个问题,所以如果你有任何想法,请帮助 我目前正在设想一些可能的项目,这些项目涉及动态渲染某些东西(例如,无论是点、线、文本还是员工的音符),但是,如果我要承担这些项目,我真的不确定如何实现这种设计。我好奇的是,像Word、Geometer的画板或Finale之类的程序是如何创建一个空白的“画布”并分别渲染文本、几何体或音乐的?一般来说,这在C#或.NET中是如何做到的 首先,最好使用的框架/平台是什么:WinForms、WPF或其他?我对很多选择持开放态度,因为我只

注意:我不确定如何命名或标记这个问题,所以如果你有任何想法,请帮助

我目前正在设想一些可能的项目,这些项目涉及动态渲染某些东西(例如,无论是点、线、文本还是员工的音符),但是,如果我要承担这些项目,我真的不确定如何实现这种设计。我好奇的是,像Word、Geometer的画板或Finale之类的程序是如何创建一个空白的“画布”并分别渲染文本、几何体或音乐的?一般来说,这在C#或.NET中是如何做到的

首先,最好使用的框架/平台是什么:WinForms、WPF或其他?我对很多选择持开放态度,因为我只是想了解不同的方法可以做到这一点

接下来,我如何使用您在第1部分中回答的不同框架创建这样的“画布”(如果我们回到这个比喻的话)?还有,我如何在上面渲染东西

我希望我的问题不要太让人困惑或困惑。我只是不知道如何处理这样的前景。谢谢


更新:我有一个不太宽泛的。我已经提供了一个我想要完成的假设性例子。然而,我仍然会接受这里的答案,即使我的问题没有完全回答。

WPF可能会很适合您的项目。我喜欢C 2008中的Pro WPF:WINDOWS演示基金会.NET 3.5,它涵盖了你要问的大部分主题。
如果你的问题更集中,你可能会得到更好的答案。您的问题范围太大,无法简单或简洁地回答。

WPF可以轻松地在绘制简单形状和控件内容之间移动形状绘制代码,从而更轻松地重构此类项目的设计。如果您需要丰富的自定义控件,WPF允许相当平滑的转换

大多数图形都可以在XAML中定义,这意味着您可以从程序或任何生成标准SVG矢量图形的程序中,通过一个


我喜欢,它对2D图形以及如何将DrawingContext类用于此类可视化编辑器进行了很好的讨论。

您的问题没有通用的答案-它太笼统了

您是否在谈论动态创建的控件、标准UI组件(下拉列表、按钮)


它是矢量图形-就像在绘图中一样,或者可能是二维图像处理-或者是三维的?

你知道有一个叫做绘画的事件吗?每次Windows操作系统需要在窗体上显示或重新绘制某些内容时,都会触发此事件。因此,您创建了一个绘制事件处理程序,其中的一切都是可能的。例如:

  • Word:您有一个带有格式化标记和内容的WordDocument数据结构,您可以使用所需的画笔/画笔和字体逐个绘制每个字符/每个单词或每个单词块。你可能还想画你的背景和东西。。。例如,如果用户更改了一个特定块的字体,则WordDocument必须更改某些内容以反映该字体的更改。然后执行myForm.Invalidate()重新绘制表单(从而更新字体)。=>动态更新您的GUI

  • Sketchpad:您需要数据结构,如直线、点、三角形等。然后,每次触发OnPaint时,您都会动态绘制它。例如:myGraphics.DrawLine(..),myGraphics.DrawCircle(..)

  • 类似于结局

您应该做的一件事是小心地处理数据结构和绘图类,而不是在OnPaint()方法中绘制所有内容,而是在实体类中创建几个DrawMe(..)方法,并让它们自己绘制。例如:myCircle.DrawMe(..),myScore.DrawMe(..)

希望这会有帮助, 本