万星星@豌豆荚 欢迎加入我们
一个吃软饭的男人!!!!!我只想写程序####
微博:http://weibo.com/wanlianwen
posts - 172,  comments - 1253,  trackbacks - 0
前提是以及安装WinFX Runtime、WinFX SDK、VS2005。具体见.NET2.0--WinFX初体验
首先下载vsextwfx.msi,这个是winfx开发模板,大约3.6M,下载完毕后安装别,看它小,安装起来花费很长时间,显示内存100多M,真是不敢想象ms产品明摆着要我们换电脑.这个我大概花了10多分钟.
然后打开VS2005,新建项目,在项目类型列表里面选择Visual C#,可以看到如下界面:

选择WinFX模板完成,项目文件里面生产两个xaml文件.我们编译以下,郁闷!居然编译不过,出现下面错误:
MyApp.xaml(1,14): error MC4629: 'http://schemas.microsoft.com/winfx/xaml/2005' is not a recognized namespace. 行 1,位置 14。.
Window1.xaml(1,9): error MC4629: 'http://schemas.microsoft.com/winfx/xaml/2005' is not a recognized namespace. 行 1,位置 9。.
不慌,还记得前面已经编译过sdk里面的例子,找一个xaml出来看看,
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
考,原来是模板没有更新.把这段代码复制到生产两个xaml文件头部覆盖以前的
http://schemas.microsoft.com/winfx/xaml/2005
http://schemas.microsoft.com/winfx/xaml/2005
编译,ok,没问题!
打开window1.xaml,在<Grid></Grid>里面添加(控件具体查看winfx sdk的帮助文档)
<Label Background="yellow" FontSize="10" HorizontalContentAlignment="center" VerticalContentAlignment="center">
        Hello World!
</Label>
编译,运行,看到下面界面了没?

看下内存,晕!有两个进程,耗费大约30M,这可是写过的最大的一个Hello World了吧!
posted on 2006-04-19 22:13 万连文 阅读(1583) 评论(7)  编辑 收藏 引用 所属分类: .NET

FeedBack:
# re: WinFX之HelloWorld
2006-04-20 19:55 | Squirrel
M$的东西真是越做越大,太恐怖了。  回复  更多评论
  
# re: WinFX之HelloWorld
2006-07-22 13:03 | LastError
效率太低了吧,再好的电脑也没用,浪费地球资源,坚决抵制  回复  更多评论
  
# re: WinFX之HelloWorld
2006-07-26 14:59 | 爱上小白

WinFX开发也是去年年初接触过, 当时是下了一个WinFX开发包, 没有IDE的. 兴奋的进入一个hello,world的Sample程序中, make一下, 然后运行.

很是开心, 第一感觉是WinFX使用XML来表示控件挺新奇的. 不过确实是慢(可能是我机器不行). 感觉WinFX用于开发会使得更加容易, 但是让开发者也更加迷糊了到底底层实现了什么内容. 不过WinFX本身还是脱离了一个本质问题, 就是程序最终还是人用的, 如果一个小程序就要那么庞大的话, 恐怕很不值得.

玩过几个简单的Sample之后, 自己也写了几个小东西, 然后就没有接触WinFx了. 不过还记得当时哪里看到, 其实在WinFX之前, Linux上某某平台东西的开发也是使用XML来描述控件的. 具体倒是忘记了.
  回复  更多评论
  
# re: WinFX之HelloWorld
2006-07-26 15:07 | 万连文
其实xml描述控件还算简单,只需要一套控件库,就是运行期控件解析起来肯定会影响速度。  回复  更多评论
  
# re: WinFX之HelloWorld
2006-07-26 15:22 | 爱上小白

如果单纯只是说使用XML来描述控件, 这样并不算是非常复杂的过程. 但是, 实现整套东西来说, 也是一个很庞大的工程. 我自己现在在做一套界面类库(有点象VCL, 不过是纯C++实现, 不象VCL那样修改C++语言的), 现在在实现控件上烦的要命, 所以觉得这个比较麻烦. 可能也是我主观的感觉.

主体代码其实跟大部分C++封装的WindowsAPI差不多, 也没有达到MFC那样很完美的使用MVC模式.

int WinMain(...)
{
//创建窗口类
clWindowClass* cls = clWindowClass::Create("_MYCLASS_", WindowProc<MyForm>);
RECT rect = {...};
//创建窗体, 可以在这之后加上窗体上的控件或者子窗体
MyForm form(NULL, *cls, rect);
//显示主窗体
form.main->show();
//消息循环
clMsgCycle mc;
return mc.run();
}
  回复  更多评论
  
# re: WinFX之HelloWorld
2006-07-26 15:47 | 万连文
感觉起来蛮象wxWidget(如果我没有记错)......  回复  更多评论
  
# re: WinFX之HelloWorld
2006-07-26 16:22 | 爱上小白

是哦. 是有点象. 因为我玩GTK(算是wx的爷爷吧)比较多, 所以风格上就有点类似了. 不过整体上我还是喜欢自己的这种样式, gtk(或者wxWindows)的窗口过程在windows平台上显然有点不直观了, 毕竟linux上, 它才是老大, windows上移植的并不好. 我个人喜欢windows远多于linux, 虽然我工作是在linux上.

本来我也没有特意按照某种库来参考的, 有过各种各样的实现, 后来渐渐的就出来这样的样子了. 不过研究下gtk(或wx)的话, 还是会发现差别不小的. 尤其WindowProc<MyForm>这个过程, gtk上的是消息绑定, 这里依旧是最用原始的WindowProc函数来处理(不过也做了些手脚, 不需要开发者自己去写).

其实还有一个最主要的东西没有加入, 我现在也正忧愁, 就是原计划中消息过程应该是同时支持WebService的, 但是现在是无从下手啊. 如果完成了, 那么就会出现一个网络和本地程序无差别的界面类库. 哈哈~
  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


简历下载
联系我

<2006年7月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿(66)

随笔分类

随笔档案

相册

搜索

  •  

最新评论

阅读排行榜

评论排行榜