前天(2008年4月2日)在
当当网购买了一本书:
《
Windows Presentation Foundation 程序设计指南》
[美]
Charles Petzold 著,蔡学镛 译,胡志鹏、魏颢、成功 审校
ISBN: 978-7-121-05115-9,电子工业出版社,2008年1月第1次印刷
Applications = Code + Markup:
A Guide to the Microsoft Windows Presentation Foundation
ISBN: 0-7356-1957-3; Microsoft Press; August 2006; 1002 pages
Errata:
http://www.charlespetzold.com/wpf/errata.xml
于是就开始了WPF学习之旅。
这本书英文原作写得相当好,中文翻译也很好。英文原作是2006年8月出版的,中译本是在2008年1月出版的,出得有点迟了,而且不知为什么中译本出版时没有按照英文版的勘误表进行更正(倒是有好几处审校者的质疑,其实都是英文版的勘误表中已经更正过的)。
目前发现的错误(不断更新中...):
第190页,倒数第2自然段中间:
英文原文是:
我认为应该这样翻译:
第219页,程序代码之后的第2自然段,第1句:
英文原文是:
我认为应该这样翻译:
第235页,第2自然段,第2句:
英文原文是:
我认为应该这样翻译:
第239页,第5自然段之后,漏了以下一个自然段:
第451页,
NotePadClone.Help.cs 程序,中间位置:
这条语句应该删除(英文原版中就错了)。
第466页,第1句:
这句话是英文原文的错误,不是译者的翻译错误。这句话应该是这样的:
第468页,第1自然段,第2句:
英文原文是:
我认为应该这样翻译:
第490页,
XamlCruncher.cs 程序,中间位置:
应改为(英文原版中就错了,但该书网站上提供下载的源程序代码是正确的):
第512页,最后1自然段(除了程序代码以外):
英文原文是:
我认为应该这样翻译:
第525页,程序代码之后的第1自然段:
英文原文是:
我认为应该这样翻译:
第569页,程序代码之后的第1自然段,第2句:
英文原文是:
我认为应该这样翻译:
第571页,最后1自然段,第2句:
这句话有问题,建议改为:
第584页底部到第585页顶部,
DirectoryPage.xaml 源代码:
应改为:
下面是修改前后程序运行的屏幕截图:
第585页,程序代码之后的第1自然段,倒数第2句:
这句话后面漏了一句:
我认为应该这样翻译:
第586页,程序代码之后的第1自然段,第1句:
英文原文是(这句话中的“
SelectionChanged”应该是“
SelectedItemChanged”):
这认为应该这样翻译:
第594页,程序代码之后的第1自然段,第1句:
英文原文是(这句话中的
“
BookList.xaml”应该是“
BookReader.xaml”):
我认为应该这样翻译:
第600页,第1句:
应该改为(这句话英文原文就是错的):
第607页,程序代码之后的第1自然段最后2句:
经实验,在这里,Label.Content
tag 也不是必须的。也就是说,我试着移除它,程序照正常工作。
第609页,最后1自然段,第1句:
英文原文是:
我认为应该这样翻译:
第612页,除了程序代码这外的第3个自然段(在该页正中间):
在我的计算机上,抛出的异常是:
不能在类型“Run”的“Text”属性上设置“Binding”。只能在 DependencyObject 的 DependencyProperty 上设置“Binding”。
这个异常消息再正常不过了。我想本书作者看到的奇怪的异常消息可能是他使用 CTP 版本的 WPF 软件的缘故。
第615页,程序代码之后的第2个自然段,第1句:
英文原文是:
我认为应该这样翻译:
第615页,程序代码之后的第3个自然段,第1句和第2句:
英文原文是:
我认为应该这样翻译:
第615页,程序代码之后的第4个自然段,第1句:
英文原文是:
我认为应该这样翻译:
第627页,倒数第2自然段,最后2句:
英文原文是:
我认为应该这样翻译:
第631页,从第2自然段开始,到“就这样”。
原书上这一大段是论述如何定义一个名为 DateTimeChanged 的
public 事件,使用
WPF 数据绑定逻辑去更新 DateTime
property。但是经我实验,这没有效果。
第639页,第4自然段,第1句和2句:
Style 类型定义在 System.Windows 中。其派生自
Object,且没有子类。
应改为(英文原文就是错的):
Style 类型定义在 System.Windows 中。其派生自
DispatcherObject,且没有子类。
第646页,程序代码之后的第2自然段:
英文原文是:
我认为应该这样翻译:
第652页,除了程序代码之外的倒数第3自然段,第1句:
英文原文是:
我认为应该这样翻译:
第656页,程序代码之后的第1自然中间:
英文原文是:
我认为应该这样翻译:
第677页,程序代码之后的第3自然段,最后1句:
这句话英文原文就是这样,但在我的计算机上通过 DumpControlTemplate 程序却得到以下结论:
第679页,除了代码之外的倒数第2自然段,第2句:
我认为应该这样翻译:
第680页,程序代码之后的第2自然段,最后1句:
我认为应该这样翻译(英文原文误为“
six”):
第694页,第2自然段,第1句:
英文原文是:
我认为应该这样翻译:
第699页,DatePicker.cs 程序代码,最后一段:
应改为(英文原版就是错的):
第705页,除了程序代码之外的第4自然段:
英文原文是:
我认为应该这样翻译:
第738页,程序代码中部(
NavigationBar.cs),应改为(其中红色的一对大括号是新增的。英文原版就错了):