WPF是否拥有所有Winforms控件的等效控件?

5

我刚刚通过吃亏的方式发现了这一点。我想弹出一个FontDialog,让用户选择字体...就是那些熟悉的对话框之一。

5个回答

7
并非所有的对话框都有相应的等效物。
例如,FontDialog(字体对话框)就没有(抱怨声)。这个页面提供了完整的信息,可能会作为一个备忘录很有用。 http://msdn.microsoft.com/en-us/library/ms750559.aspx 更新: 《Programming WPF》一书中已经解决了此问题。显然,一些对话框没有在RTM总线上发行。将在下次更新中包含的FontDialog可以在此处获得,ColorPicker对话框也是如此。此外,您不应盲目使用Win32对话框,因为WPF中对应的类型(例如Font和Color)现在更加“强大和优秀”。 http://blogs.msdn.com/wpfsdk/archive/2006/10/26/Uncommon-Dialogs--Font-Chooser-and-Color-Picker-Dialogs.aspx

1

VistaBridge示例包含一些Vista对话框的包装器!

还可以查看由System.Win32 Microsoft.Win32提供的包装器。

[更新] `Microsoft.Win32.FileDialog`


很好知道...但我们仍然需要支持XP。 - Gishu
Microsoft.Win32而不是System.Win32。 - rudigrobler

1

使用WindowsFormsHost嵌入Windows表单可能会导致许多问题,特别是在处理渲染、可见性等方面。

有些控件已经由其他人实现,并可以在WEB上找到,例如:

NumericUpDown DateTimePicker SplitButton

当然还有新的WPFDataGrid。


我正在寻找一个WPF中的NumericUpDown控件...你有一个好的链接吗?我已经搜索过了,但没有找到特别好的。 - devios1

0

我认识一个团队,他们过去几年一直在开发 WPF 应用程序,他们的反馈是,在处理复杂控件(例如高级数据网格、树视图等)时,WPF 仍然无法与 WinForms 相匹配。不过基本控件还好。


离题了...看起来 WPF 还没完成...看起来最后期限起了作用。再给它几年时间...支持所有以前的琐碎事物需要一些重写时间。 - Gishu
是的,这可能是真的,它只需要时间来成熟。 - Michael Pliskin
值得一提的是,许多复杂的WinForms控件在WPF中已经过时了 - 相同的功能可以通过模板和绑定来实现(这需要对应用程序结构进行重大转变)。"System"对话框和控件则更加棘手。 - ima

0

很遗憾,它不支持。但是,您可以使用Microsoft.Win32命名空间“借用”一些Windows Forms对话框,或者通过使用System.Windows.Forms.WindowsFormHost WPF元素集成Windows Forms控件。此外,您可以直接调用构造函数,然后在其上调用ShowDialog()方法来显示Windows Forms对话框。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接