在WPF中工作时,我应该使用System.Windows.Controls或System.Windows.Forms中的控件吗?

时间:2011-07-15 18:36:06

标签: wpf winforms forms xaml controls

所以我开始使用XAML在Visual Studio中创建WPF应用程序,似乎很多控件都不同。同名,但不同。

最值得注意的是(对我来说)是Treeview和RichTextBox。

由于我在WPF工作,我应该使用System.Windows.Forms.TreeView还是System.Windows.Controls.TreeView(同样适用于富文本框等)?

我不喜欢System.Windows.Controls中控件的工作方式。这可能是因为我在表单中习惯了它们,但是例如,我不明白为什么Controls.RichTextBox没有Text或Clear方法。

与此同时,使用< wf:TreeView />非常烦人。记号很多,所以我尽量使用Sys.Windows.Controls版本的东西。

一种方式比另一方好吗?或者只是偏好?

1 个答案:

答案 0 :(得分:5)

首选方法当然是使用WPF原生System.Windows.Controls。我想你会习惯他们的。 WPF控件优于Windows Forms控件,因为它们支持绑定,动画,样式等。

WPF控件功能丰富,但有时实现的功能与Windows窗体对应的方式不同。特别是,对于RichTextBox,您可以使用RichTextBox.Document来处理内部文本。

例如,从RichTextBox获取文本可以按如下方式完成:

TextRange textRange = new TextRange(richTextBox.Document.ContentStart,
                                    richTextBox.Document.ContentEnd);
string text = textRange.Text;