WPF/XAML 的开源替代品有哪些?

发布于 2024-09-03 14:28:36 字数 1841 浏览 3 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

李白 2024-09-10 14:28:36

Qt 正在开发 QML,除了 JSON 之外,它看起来很像 XAML。它可以作为针对当前版本构建的预览版使用,并且可以在下一版本的快照中使用。

这是 http://doc.qt 的一个小片段。 nokia.com/4.7-snapshot/declarative-ui-components-progressbar.html

import Qt 4.7
import "content"

Rectangle {
   id: main

    width: 600; height: 405
    color: "#edecec"

    Flickable {
       anchors.fill: parent
       contentHeight: column.height + 20

       Column {
           id: column
           x: 10; y: 10
           spacing: 10

           Repeater {
               model: 25

               ProgressBar {
                 property int r: Math.floor(Math.random() * 5000 + 1000)
                 width: main.width - 20

                 NumberAnimation on value { duration: r; from: 0; to: 100; loops: Animation.Infinite }
                 ColorAnimation on color { duration: r; from: "lightsteelblue"; to: "thistle"; loops: Animation.Infinite }
                 ColorAnimation on secondColor { duration: r; from: "steelblue"; to: "#CD96CD"; loops: Animation.Infinite }
               }
           }
       }
   }
}

Qt is developing QML, which looks a lot like XAML except in JSON. It's available as a preview built against the current version, and is available in snapshots of the next version.

Here's a little snippet from http://doc.qt.nokia.com/4.7-snapshot/declarative-ui-components-progressbar.html

import Qt 4.7
import "content"

Rectangle {
   id: main

    width: 600; height: 405
    color: "#edecec"

    Flickable {
       anchors.fill: parent
       contentHeight: column.height + 20

       Column {
           id: column
           x: 10; y: 10
           spacing: 10

           Repeater {
               model: 25

               ProgressBar {
                 property int r: Math.floor(Math.random() * 5000 + 1000)
                 width: main.width - 20

                 NumberAnimation on value { duration: r; from: 0; to: 100; loops: Animation.Infinite }
                 ColorAnimation on color { duration: r; from: "lightsteelblue"; to: "thistle"; loops: Animation.Infinite }
                 ColorAnimation on secondColor { duration: r; from: "steelblue"; to: "#CD96CD"; loops: Animation.Infinite }
               }
           }
       }
   }
}
带刺的爱情 2024-09-10 14:28:36
  • 网络正在夺走桌面应用程序的大部分动力。

    我认为很大的原因是现在每个人都非常关注网络。 HTML5 将是网络功能的巨大飞跃。有了快速的 JavaScript 解释器和功能强大的浏览器,随着时间的推移,对桌面程序的需求将开始减弱。这是谷歌所押注的一匹马,苹果也是如此。

  • 创建一些好的东西会对每个操作系统有完全不同的实现,因此基础工具包本身不太可移植。

    如果你仔细想想,网络是我们以跨平台方式开发此类基础设施的唯一真正通用的基础。从架构角度来看,WPF 与 WinForms/直接 WinAPI 代码有着惊人的不同。如果您希望制作出性能良好的东西,那么将类似的东西适应每个操作系统将需要为每个操作系统进行大量不同的管道。 (请注意,并不是说网络应用程序非常快,而是它们正在变得更好)。

  • 外观和感觉始终是一个问题。

    您使用谁的外观和风格?您是否尝试使 UI 适应操作系统镶边,使其看起来“原生”,或者您是否会像几年前的 Swing 那样,开发出与现有应用程序截然不同的应用程序? (呃,那真是一场火车事故……)如果您选择使 UI 适应每个操作系统的外观和感觉,您可能会遇到各种测量和设计问题。

  • The Web is taking most of the steam away from desktop apps as it is.

    I think that the big reason is that everyone's so focused on the web right now. HTML5 is going to be a quantum leap forward in what the web can do. With fast JavaScript interpreters and capable browsers, the need for a desktop programs will begin to wane over time. That's the horse that Google is betting on, and to a much lesser extent, Apple as well.

  • Creating something good would have radically different implementations for each OS, so the base toolkit itself wouldn't be very portable.

    If you think about it, the Web is the only really common substrate we have upon which to develop this sort of infrastructure in a cross-platform manner. WPF is incredibly different from an architectural perspective vs. WinForms/straight WinAPI code. Adapting something like it to each OS would take a great deal of very different plumbing for each OS if you were to have a prayer of making something that performed well. (Not that web apps are very fast, mind you, but they're getting better).

  • Look and feel is always going to be somewhat of an issue.

    Whose look and feel do you use? Do you try to adapt the UI to the OS chrome so it looks "native", or do you do something like Swing did years ago and develop apps that look distinctively different from everything out there? (Ugh, that was a train wreck...) And if you choose to adapt the UI to each OS's look and feel, you may have all sorts of measurement and design issues.

失眠症患者 2024-09-10 14:28:36

Novell 有一个名为 Moonlight 的 Silverlight 开源实现,对 XAML 提供了大力支持:

http:// /en.wikipedia.org/wiki/Moonlight_(runtime)

http://www.mono -project.com/月光

Novell has an open source implementation of Silverlight, with great support for XAML, called Moonlight:

http://en.wikipedia.org/wiki/Moonlight_(runtime)

http://www.mono-project.com/Moonlight

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文