C# 如何从WinForms移动到WPF

C# 如何从WinForms移动到WPF,c#,.net,wpf,winforms,user-interface,C#,.net,Wpf,Winforms,User Interface,我以前很少使用WPF,有些东西看起来很难实现。来自winforms的背景,什么事情看起来会有所不同,需要花一段时间才能弄清楚 我突然想起,如果我没有错的话,我无法像winforms那样指定在treeview控件中选择哪些节点。我记得整个MVVM原则 但是现在没事了。。我们现在是好朋友了!:) 对于树状视图中选定的节点,ModelView-ViewModel方法效果良好。现在,人们已经为这类事情设计出了很好的设计模式,使过程更加简单。哦,从哪里开始?WPF和WinForms对我来说似乎非常不同。使

我以前很少使用WPF,有些东西看起来很难实现。来自winforms的背景,什么事情看起来会有所不同,需要花一段时间才能弄清楚


我突然想起,如果我没有错的话,我无法像winforms那样指定在treeview控件中选择哪些节点。

我记得整个MVVM原则


但是现在没事了。。我们现在是好朋友了!:)

对于树状视图中选定的节点,ModelView-ViewModel方法效果良好。现在,人们已经为这类事情设计出了很好的设计模式,使过程更加简单。

哦,从哪里开始?WPF和WinForms对我来说似乎非常不同。使用标记定义布局的概念是完全不同的,尽管与web开发类似。您需要明确选择布局容器(用于多个元素)这一事实是新颖的。我记得我试图在一个窗口中直接添加一堆元素,结果弄得很困惑


我认为要充分利用WPF所提供的一切,你需要有WPF的心态。例如,您不必使用样式、模板和绑定,但这些概念正是WPF的力量所在。

正如Daniel所说,WPF是不同的,它需要不同的思维方式。您必须忘记在进行Winforms或其他常规UI端开发时所做/学到的所有UI端假设 我在这个网站上遇到过很多类似的问题。下面列出了一些有趣的例子。你可以在这里找到很多


如果手动填充TreeView(就像在WinForms中一样),则可以遍历TreeView节点并分配给IsSelected属性,以编程方式选择其中一个。SO FAQ中的第一项表示问题应“详细且具体”。这既不是IMHO,也不是IMHO。好吧,正如Jobi Joy指出的,这是一个WPF的复制品,在使用可视化表单设计器之后,似乎是一个倒退。@R.Bembrose:我有点同意,有点不同意。和WPF所有的东西一样,它……不同。我发现在标记中工作(带有预览)鼓励我自然地“流动”布局,而不是基于固定的位置。最终的结果是一个更好的界面。当然,混合。。。