摘要: 由于WPF应用程序中XAML代码在很多时候是运行时加载处理的。比如DynamicResource,但是在编译或者运行的过程中,编写的XAML代码很可能有错误,此时XAML代码解析器通常会抛出称为XamlParseException的异常。但是抛出的XamlParseException异常提供的信息非常简单,或者是很不准确。此时我们关于通过对变通的方法来获取更多的异常信息。  阅读全文
posted @ 2007-05-28 12:27 Yiling Lai 阅读(2634) | 评论 (17)编辑
     摘要: 在前一个Post当中,指出了在WPF的WindowInteropHelper类中的一个BUG:通过WindowInteropHelper的Owner属性不能实现把WPF窗口的Owner属性设置为一个非WPF窗口的句柄。在我的Post帖出后不到一天,在WPF SDK的Blog上,就针对这个BUG给出了一个非常完美的解决方案。既然不同通过设置WindowStartupLocation.CenterOwner来改变窗口的位置。那么我们就用WindowStartupLocation.Manual来手动计算设置窗口的位置。   阅读全文
posted @ 2007-05-15 09:21 Yiling Lai 阅读(2866) | 评论 (5)编辑
     摘要: 上海.NET俱乐部--微软社区巡展VSTS上海专题活动 4月21日(周六) 14:00—17:30  阅读全文
posted @ 2007-04-17 13:59 Yiling Lai 阅读(2569) | 评论 (6)编辑

在Windows SDK中关于WindowInteropHelper类的介绍中,关于其Owner属性的说明和实现有些问题。

原文是:An example scenario is if you need to host a WPF dialog box in a Win32 application. Initialize the WindowInteropHelper with a WPF window object for the dialog. You can then get the WPF window's handle (HWND) from the Handle property and specify the owner for the WPF window with the Owner property. The following code example shows how to use WindowInteropHelper when hosting a WPF dialog box in a Win32 application.

大意是通过WindowInteropHelper的Owner属性可以把WPF窗口的Owner属性设置为一个Win32的窗口句柄HWND。但是这个功能的实现是有问题的。有兴趣的朋友可以通过下面的代码进行测试:

Window myDialog = new Window();
myDialog.WindowStartupLocation = WindowStartupLocation.CenterOwner;
WindowInteropHelper wih = new WindowInteropHelper(myDialog);
wih.Owner = ownerHwnd;
myDialog.ShowDialog();

这段代码最后显示的窗口不会位于Owner窗口的中心。事实上,WindowInteropHelper.Owner属性设置的是Window类的_ownerHandle成员。这个成员和Window.Owner设置的成员不是同一个。因此,文档中的说明和WPF的实际实现不相符的。这个问题基本已经确认是WPF的一个BUG。

posted @ 2007-04-03 12:16 Yiling Lai 阅读(1234) | 评论 (2)编辑

WPF全景体验

2007130Windows Vista正式全球同步发布。此举标志着Windows Vista已经旋风般地吹向了整个网络世界。比尔盖茨预言:只需要三分钟时间就能让用户接受Windows Vista。但是,微软如何才能做到这一点呢?其中最关键的一点就是Windows Presentation FoundationWPF),她依赖于WPF所带来的震撼视觉效果和用户体验。

请在这里查看全部文章

posted @ 2007-03-07 17:14 Yiling Lai 阅读(4600) | 评论 (14)编辑