我正在阅读 Metro Revealed:使用 XAML 和 C# 构建 Windows 8 应用程序。这本书包含我无法编译的这段代码:
using Windows.UI.Xaml;
...
private void HandleViewStateChange(ApplicationViewState viewState) {
if (viewState == ApplicationViewState.Snapped) {
GridLayout.ColumnDefinitions[0].Width
= GridLengthHelper.FromPixels(0);
} else {
GridLayout.ColumnDefinitions[0].Width
= GridLengthHelper.FromValueAndType(1, GridUnitType.Star);
}
}
问题在于GridLengthHelper
Visual Studio 不可见的类(在 VS 2012 Express for Windows 8 RC 和 VS 2012 Ultimate RC 中都试过)。构建错误是:
当前上下文中不存在名称“GridLengthHelper”
或者
“Windows.UI.Xaml.GridLengthHelper”因其保护级别而无法访问
对象浏览器没有根据文档显示此类Windows.winmd
应该在的位置。当我导航到对象浏览器中显示的路径时,更令人沮丧的是:
C:\Program Files (x86)\Windows Kits\8.0\References\CommonConfiguration\Neutral\Windows.winmd
并在 Reflector 中打开Windows.winmd
文件,我看到 publicGridLengthHelper
类存在!