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

Toa*_*ums 0 forms wpf xaml controls winforms

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

最值得注意的是(对我而言)是Treeview和RichTextBox.

由于我在WPF工作,我应该使用System.Windows.Forms.TreeViewSystem.Windows.Controls.TreeView(对于富文本框等)?

我不喜欢控件的System.Windows.Controls工作方式.这可能是因为我习惯于使用Forms,但是例如,我不明白为什么Controls.RichTextBox没有Text或Clear方法.

与此同时,非常烦人的是必须使用<wf:TreeView />表示法,所以我尝试尽可能多地使用这些Sys.Windows.Controls版本的东西.

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

Vla*_*lad 5

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

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

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

TextRange textRange = new TextRange(richTextBox.Document.ContentStart,
                                    richTextBox.Document.ContentEnd);
string text = textRange.Text;
Run Code Online (Sandbox Code Playgroud)