Windowsストアアプリをバージョン8から8.1に更新した後の一般的な修正



アプリケーションをプラットフォーム8.1に変換すると、これは非常に簡単なタスクであり、それほど労力を必要としないことがわかりました。

翻訳後、プラットフォームの不一致の結果として典型的な警告がしばしば発生します。 もちろん、これらの警告を修正することをお勧めします。

最も一般的な修正を検討しますか?



更新するときは、必ずプロジェクトのあるディレクトリのコピーを作成してください。 まず、常にバックアップを保持します。次に、ストアにWindows 8とWindows 8.1のバージョンを同時に保持できます。



1.「Windows.ApplicationModel.DataTransfer.DataPackage.SetUri(System.Uri)」という警告は非推奨になりました。「Windows 8.1以降のリリースでは、SetUriが変更されるか、使用できなくなる可能性があります。 代わりに、SetWebLinkまたはSetApplicationLinkを使用してください。」



最も単純で最も簡単に修正された警告。 バージョン8.1では、setUriがさまざまなSetWebLinkおよびSetApplicationLinkメソッドに導入されました。 Webサイトへのリンクがある場合は、setUriをSetWebLinkに置き換えるだけです



2.「Windows.UI.Notifications.TileTemplateType.TileWideText04」という警告は非推奨です。「TileWideText04は、Windows 8.1以降のリリースでは変更されるか、使用できなくなる可能性があります。 代わりに、TileWide310x150Text04を使用してください。



繰り返しになりますが、TileWideText04をTileWide310x150Text04または他のサイズのタイルテンプレートに置き換えるだけで十分です。



3.「Windows.UI.Xaml.Controls.ScrollViewer.ScrollToVerticalOffset(double)」という警告は非推奨です。「ScrollToVerticalOffsetは、Windows 8.1以降のリリースでは変更されるか使用できない場合があります。 代わりに、ChangeViewを使用してください。」



ScrollToVerticalOffsetが廃止されたメソッドであることを意味します。 次のようなコードを置き換えます

scrollV.ScrollToHorizontalOffset(100); //  scrollV    ScrollViewer scrollV.ScrollToVerticalOffset(0);
      
      







 scrollV.ChangeView(100, 0, 1);
      
      





4.「Windows.UI.ViewManagement.ApplicationView.Value」という警告は非推奨です。「Windows 8.1以降のリリースでは、値が変更されたり、利用できなくなったりする可能性があります。 代わりに、ウィンドウレイアウトサイズを直接クエリします。」



これは、最も人気があり、最も頻繁に発生する警告です。

ApplicationViewオブジェクトは非推奨です。 Windows 8.1では、スナップモードに50/50モードも追加されます。 これにより、アプリケーションの状態を処理するためのオプションが増えますが、特定の状態の名前ではなく、画面の幅にバインドすることも強制されます。



C#では、次のようにします。

イベントWindow.Current.SizeChanged + = Window_SizeChanged;を登録します。

次に、イベントハンドラーのコードで、デバイスの画面サイズに応じて、必要な処理を開始します。

 private void Window_SizeChanged(object sender, Windows.UI.Core.WindowSizeChangedEventArgs e) { if (e.Size.Width <= 1000){ //      } else if (e.Size.Width <= 500){ //       } else{} //       ApplicationViewOrientation winOrientation = ApplicationView.GetForCurrentView().Orientation; if (winOrientation == ApplicationViewOrientation.Landscape) { //   } else if (winOrientation == ApplicationViewOrientation.Portrait) { //   } }
      
      





この例でわかるように、画面の向き(レイアウト)は、アスペクト比ではなく、名前によっても決定できます。 近い将来、幅と高さの比によってのみデバイスの向きを決定できるようになる可能性があります。 幅が大きい場合は横、小さい場合は縦になります。 同様のJavaScriptの例でそれを行います(公式のガイドラインの例は既に私のために働くことを拒否しました):

 //   resize window.addEventListener("resize", function (e) { var windowWidth = document.documentElement.offsetWidth; //    var windowHeight = document.documentElement.offsetHeight; //    if (windowWidth <= 500) { //       }else{} // ,      ,     if (windowWidth>windowHeight) { //   } else { //   } });
      
      





HTML5アプリケーションの優れた点は、さまざまな位置と画面サイズにスタイルを設定できることでした。 8.1では、これらのメディアスタイルは、アプリケーションの状態を示すスタイルから、ピクセル単位の幅を示すスタイルにわずかに変更されました。

つまり、次のようなスタイル:

 @media (-ms-view-state: snapped)
      
      



または
 @media (-ms-view-state: filled)
      
      





クラシックに置き換えられました:

 @media (min-width: 500px) and (max-width: 1023px)
      
      



または
 @media (min-width: 1024px)
      
      





向きのスタイルにも変更があります。 これで次のようになります。

 @media (orientation: landscape) { /* CSS     */ } @media (orientation: portrait) { /* CSS     */ }
      
      





簡単すぎると感じた人のために、開発者プレビューバージョンで作成されたアプリケーションを更新するときに発生する別のまれなエラーを提供します(ほとんどの開発者を脅かすことはありません)。

更新後、プロジェクトは開くことを拒否し、次のエラーが発生しました。

D:\ TesT \ TesT.csproj:エラー:インポートされたプロジェクト「C:\ Program Files \ MSBuild \ Microsoft \ WindowsXaml \ v11.0 \ Microsoft.Windows.UI.Xaml.CSharp.targets」が見つかりませんでした。 インポート宣言のパスとディスク上のファイルの存在を確認します。 D:\ TesT \ TesT.csproj



プロジェクトファイルを開き、その中の同様の行を見つけます。

  <Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
      
      





v $(VisualStudioVersion)を使用するスタジオのバージョンに置き換えます 。 私の場合、これはVisual Studio 2013のバージョンです。つまり、 v12.0に置き換えています



要約:

アプリケーションの更新は可能であるだけでなく、簡単です。 がんばれ!

今年もなんとかできたら、 コンテストに参加すると同時に応募を宣伝する機会があります。

アプリケーションを更新することで得られるもう1つの非常に素晴らしいパンは、8.1でのパフォーマンスの改善です

多くの変更があります。 彼は、彼自身が遭遇した最も人気のあるエラーのみを引用しました。 私はコメントで他のエラー/警告についてすぐに読みました。



公式ガイドと変更ログ:

Windows 8.1 API(HTML)の変更

Windows 8.1 API(XAML)の変更



All Articles