Metro Revealed:XAMLとC#を使用したWindows8アプリの構築を読んでいます。この本には、私がコンパイルできない次のコードスニペットが含まれています。
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 Windows8RCとVS2012Ultimate RCの両方で試してみました)。ビルドエラーは次のとおりです。
'GridLengthHelper'という名前は現在のコンテキストに存在しません
また
'Windows.UI.Xaml.GridLengthHelper'は、保護レベルが原因でアクセスできません
オブジェクトブラウザには、ドキュメントに従ってWindows.winmd
本来あるべき場所にこのクラスが表示されません。ObjectBrowswerに表示されているパスに移動するとさらにイライラします。
C:\Program Files (x86)\Windows Kits\8.0\References\CommonConfiguration\Neutral\Windows.winmd
リフレクターでファイルを開くと、パブリッククラスが存在Windows.winmd
することがわかります。GridLengthHelper