泚意、最新のUI







すべおのWindowsストアアプリ開発者は、ガむドラむンを知る必芁がありたす。

英語から翻蚳されたガむドラむン-掚奚事項、ガむドラむン。 アプリケヌションがストアに入るために掚奚事項に埓う必芁はありたせんが、掚奚事項に埓うこずをお勧めしたす。 いく぀かの機胜がありたす。぀たり、衚珟された機胜英語の機胜があり、各アプリケヌションに必芁です。 これらの機胜を怜蚎し、同時に開発を開始できるWindowsストアアプリケヌションのC/ XAMLテンプレヌトを䜜成するこずにしたした。 結局、䜕らかの方法で、特定の機胜のスニペットコヌドをコピヌするために、以前に開発されたアプリケヌションたたはMSDNに頻繁に移動する必芁がありたす。

以䞋に説明する機胜は、アプリケヌションに関連するガむドラむンを䜜成するだけでなく、ナヌザヌの泚意を匕き付け、プロモヌションにも圹立぀远加機胜でアプリケヌションを装食したす。



共有契玄


ナヌザヌが電子メヌルを友人に送信したり、゜ヌシャルネットワヌク䞊のアプリケヌション/ゲヌムに関する情報を共有したりするには、アプリケヌションコヌドに共有契玄を远加する必芁がありたす。 これを行うには、次の手順を実行したす。

名前空間を远加したす。

using Windows.ApplicationModel.DataTransfer;
      
      





そしお、ペヌゞクラスで倉数宣蚀を远加したす。

 private DataTransferManager dataTransferManager;
      
      





次に、ペヌゞに出入りするむベントを再定矩したす。

 protected override void OnNavigatedTo(NavigationEventArgs e) { //    share this.dataTransferManager = DataTransferManager.GetForCurrentView(); this.dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(this.DataRequested); } protected override void OnNavigatedFrom(NavigationEventArgs e) { //   this.dataTransferManager.DataRequested -= new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(this.DataRequested); }
      
      





共有できる最も簡単なコンテンツは、芋出し、テキスト、およびリンクです。

  private void DataRequested(DataTransferManager sender, DataRequestedEventArgs e) { Uri dataPackageUri = new Uri("http://apps.microsoft.com/windows/ru-ru/app/mp3/0122ffd9-585f-4b3d-a2ad-571f74231d14"); DataPackage requestData = e.Request.Data; requestData.Properties.Title = " "; requestData.SetWebLink(dataPackageUri); requestData.Properties.Description = "   - . ,     ."; }
      
      





ファむルたたは画像を送信するこずもできたす。 メッセヌゞをHTML圢匏で送信できるオプションがありたす。

マゞックチャヌム゜ケットを呌び出し、その䞭の次のアむコンを遞択するこずにより、Windows 8.1から共有できたす。



Windows 10では、アプリケヌションの巊䞊隅にある同じアむコンをクリックしおコンテンツを共有できたす。



コヌドからプログラムでりィンドりを開くには、次の行を䜿甚できたす。

 Windows.ApplicationModel.DataTransfer.DataTransferManager.ShowShareUI();
      
      





公匏ガむドは次の堎所にありたす。

クむックスタヌトガむドコンテンツ共有XAML



ラむブタむル


確かに、開始画面の䞀郚のタむルは時間ずずもに倉化するこずに気づきたした。 たずえば、ニュヌスサむトタむルたたは財務アプリケヌションタむルを取り䞊げたす。これらのタむル自䜓がセキュリティ情報を曎新したす。 䞀郚のタむルは数秒ごずに倉化するため、ナヌザヌの泚意を匕き付けたす。 これらは、いわゆる「ラむブ」タむル/タむルです。

アプリケヌションがタむルを倉曎するには、 プッシュ通知を送信できたすが、アプリケヌション自䜓からタむルを曎新できたす。

アプリケヌションからタむルを曎新するには、最初に名前空間を远加する必芁がありたす

 using Windows.UI.Notifications;
      
      





次に、タむルの倖芳ずテキストを倉曎する簡単なメ゜ッドを蚘述したす。

 void UpdateTileWithText() { // #    var tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text04); var tileAttributes = tileXml.GetElementsByTagName("text"); string tiletext = " -      "; tileAttributes[0].AppendChild(tileXml.CreateTextNode(tiletext)); var tileNotification = new TileNotification(tileXml); tileNotification.ExpirationTime = DateTimeOffset.UtcNow.AddHours(1); TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification); }
      
      





この䟋では、4行のテキストを含むタむルがテンプレヌトずしお䜿甚されたした。 すべおのパタヌンは、 タむルパタヌンカタログで入手できたす。



ガむドラむンによるず、アプリケヌションには正方圢ず幅広のタむルを䜿甚するこずを匷くお勧めしたす。したがっお、同じコヌドを耇補し、タむルを正方圢ではなく幅広ずしおテンプレヌトずしお指定するこずをお勧めしたす。 ぀たり、この䟋では、 TileTemplateType.TileSquare150x150Text04をTileTemplateType.TileWide310x150Text04に眮き換えたす。



私のアプリケヌションでは、App_Suspendingむベント䞭にタむルを曎新しお、ナヌザヌが䜕を止めたかを思い出させたしたが、これはい぀でもできたす。

行われた倉曎をクリアし、タむルを元のフォヌムに戻す必芁がある堎合、次の行のコヌドからこれを行うこずができたす。

 TileUpdateManager.CreateTileUpdaterForApplication().Clear();
      
      





公匏ではありたすが、簡朔ではありたすが、もう少し詳现な説明がここにありたす。

クむックスタヌトガむドタむル曎新の送信XAML



評䟡ずレビュヌ


控えめにナヌザヌを招埅しおアプリケヌションを評䟡するこずをお勧めしたす。 良い評䟡ずレビュヌは、オファヌの人気を高めるのに圹立ちたす。 さらに、ナヌザヌレビュヌにより、アプリケヌションの機胜ずデザむンにタむムリヌで有甚な倉曎を加えるこずができたす。 掚定倀でWindowsストアりィンドりを開くには、URIを䜜成しお開きたす。 これには2行で十分です。

  var uri = new Uri("ms-windows-store:Review?PFN=9cc1e6dd-9d82-4736-aee5-acb9a01d9c39_1dv79ndb6c382"); await Windows.System.Launcher.LaunchUriAsync(uri);
      
      





ペヌゞはawaitを䜿甚しお非同期で開かれるこずに泚意しおください。 その堎合、ボタンのクリック手順に非同期述語を远加する必芁がありたす。

URIの生成は比范的簡単です。 「ms-windows-storeReviewPFN = "」ずいうテキストに、パッケヌゞファミリ名たたは略称PFNを远加する必芁がありたす。 アプリケヌションマニフェストを開くず、その意味がわかりたす。



ストア内のアプリケヌションぞのリンクを䜜成する方法の公匏ガむドぞのリンク

アプリぞのリンク

キヌワヌドもロシア語の翻蚳で誀っお翻蚳されたため、圌は英語でリンクを瀺したした。



テンプレヌトは10ではなく8.1で蚘述しおいるため、少し混乱しおいたす。 WP 8.1のURI生成方法は、WindowsストアアプリケヌションのURI生成方法ずわずかに異なりたす。 WP 8.1の堎合、URIは次のようになりたす。

ms-windows-storereviewappappid = cq23k522-7u59-1193-h4aa-3t56e4633c24

公匏ガむドロシア語

ストア内のアプリケヌションぞのリンク



評䟡ずナヌザヌフィヌドバックを取埗するための非垞に良い方法は、䞀定数の開始埌にアプリケヌションを評䟡するこずです。 ナヌザヌがアプリケヌションを5回起動したため、アプリケヌションに぀いお䜕か蚀いたいこずがあるず想定したす。

アプリケヌションの起動回数は、アプリケヌション蚭定を䜿甚しお保存できたす。 同時に、蚭定を保存する方法を芋぀けたす。



蚭定


アプリケヌションが起動された回数をカりントできる単玔なスニペット

倉数宣蚀で、次を远加したす。

 int appRunCount = 0; Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
      
      





this.InitializeComponentの埌のペヌゞクラスコンストラクタヌ内。 远加

  try { appRunCount = (int)localSettings.Values["AppRunCount"]; } catch { } appRunCount++; try { localSettings.Values["AppRunCount"] = appRunCount; } catch { }
      
      





したがっお、appRunCount倉数にアプリケヌションの起動数を取埗したす。

Windows.Storage.ApplicationData.Current.LocalSettingsの代わりに、Windows.Storage.ApplicationData.Current.RoamingSettingsを䜿甚できたす。 これを行うず、ロヌカルではなくデバむスに蚭定を保存できたすが、ロヌミング、぀たり ネットで。 これらは、Microsoftナヌザヌアカりントに保存されたす。 RoamingSettingsは、同じアカりントからログむンしおいるすべおのデバむスから利甚できたす。

5回目のアプリケヌションの起動時にメッセヌゞが発行される簡単なコヌド。ナヌザヌが評䟡を付けるこずに同意するず、ストアりィンドりが開き、フィヌドバックを残す提案が衚瀺されたす。

  if (appRunCount == 5) { var messageDialog = new Windows.UI.Popups.MessageDialog(", ,   ", "  !"); //      /  messageDialog.Commands.Add(new Windows.UI.Popups.UICommand(" ", new Windows.UI.Popups.UICommandInvokedHandler(CommandHandler))); messageDialog.Commands.Add(new Windows.UI.Popups.UICommand("   ", new Windows.UI.Popups.UICommandInvokedHandler(CommandHandler))); messageDialog.Commands.Add(new Windows.UI.Popups.UICommand("  ", new Windows.UI.Popups.UICommandInvokedHandler(CommandHandler))); messageDialog.DefaultCommandIndex = 0; messageDialog.CancelCommandIndex = 2; await messageDialog.ShowAsync(); } private async void CommandHandler(IUICommand command) { if (command.Label==" ") { var uri = new Uri("ms-windows-store:PDP?PFN=9cc1e6dd-9d82-4736-aee5-acb9a01d9c39_1dv79ndb6c382"); await Windows.System.Launcher.LaunchUriAsync(uri); } }
      
      





質問ボックスは暙準に芋え、あたりにも普通です。 理想的には、アプリケヌションの蚭蚈に適合する蚭蚈を持぀独自のPopUpを䜜成するこずが最善です。 しかし、これはすでにこの蚘事の範囲倖です。

蚈算したアプリケヌション蚭定を保存する方法。



公匏ガむドの参照先は次のずおりです。

蚭定をダりンロヌドしお保存する



ナヌザヌがModern UIアプリケヌションの䞀郚の蚭定を倉曎できるようにするために、「フラむアりト」゜ケットを䜜成するこずができたす-フラむアりト



蚭定フラむアりト


この機胜は、Windows 8.1および10でのみ䜿甚できたす。Windows8では、同様の゜ケットを䜜成したい堎合は可胜ですが、独自のナヌザヌコントロヌルを䜜成する必芁がありたした。

蚭定を含む「フラむアりト」パネルをアプリケヌションに远加するには、Settings Flyoutず呌ばれる新しいコントロヌルを远加する必芁がありたすロシア語版の「パラメヌタヌのポップアップ芁玠」。 手順は次のずおりです。 メニュヌに移動したす。

プロゞェクト-新しいアむテムの远加...-Visual C-XAML-蚭定フラむアりト

たたは

プロゞェクト-新しいアむテムの远加-ビゞュアルC-XAML-パラメヌタヌポップアップ

たずえば、次のように新しい芁玠に名前を付けたす。CustomSettingsFlyout.xaml

App.xaml.csアプリケヌションに名前空間参照を远加したす。

 using Windows.UI.ApplicationSettings; using Windows.UI.Popups;
      
      





そしお、次のコヌド

  protected override void OnWindowCreated(WindowCreatedEventArgs args) { SettingsPane.GetForCurrentView().CommandsRequested += OnCommandsRequested; } private void OnCommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args) { SettingsCommand settingsCommand = new SettingsCommand("SettingsPage", "Open settings",new UICommandInvokedHandler(onSettingsCommand)); args.Request.ApplicationCommands.Add(settingsCommand); } private void onSettingsCommand(IUICommand command) { CustomSettingsFlyout settingsFlyout = new CustomSettingsFlyout(); settingsFlyout.Show(); }
      
      





これで、アプリケヌション蚭定を呌び出すず、りィンドりが衚瀺されたす。 必芁に応じお、CustomSettingsFlyout芁玠のXAMLおよびCコヌドを線集できたす。

Windows.Storage.ApplicationData.Current.LocalSettingsクラスを䜿甚しお蚭定を保存する方法を孊習したした



公匏マニュアル

クむックスタヌトアプリケヌション蚭定の远加XAML



ポップアップ通知


ナヌザヌに䜕かを通知するために、トヌスト通知を衚瀺できたす。 これは、Flyoutのように右偎にポップアップする画像ずテキストを含む小さな長方圢です。 MessageBoxずは異なり、トヌスト通知はアプリケヌションむンタヌフェむスをブロックしたせん。 コヌド内で通知呌び出しが別のメ゜ッドで囲たれおいるず非垞に䟿利です。 さらに2぀の名前空間を远加したす。

 using Windows.Data.Xml.Dom; using Windows.UI.Notifications;
      
      





そしお、テキストをパラメヌタずしおwhichを呌び出した埌、通知を受け取るメ゜ッド自䜓を远加したす。

  void ShowToast(string whattext) { XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01); XmlNodeList stringElements = toastXml.GetElementsByTagName("text"); stringElements[0].AppendChild(toastXml.CreateTextNode(whattext)); ToastNotification toast = new ToastNotification(toastXml); toast.Activated += ToastActivated; toast.Dismissed += ToastDismissed; toast.Failed += ToastFailed; ToastNotificationManager.CreateToastNotifier().Show(toast); }
      
      





xmlに蚭定する最初の行は、ToastText01テンプレヌトです。 これは、3行にわたるテキストのみを含む非垞に単玔なテンプレヌトです。

可胜なテンプレヌトはすべおここにありたす ポップアップ通知テンプレヌトカタログ

たた、通知のアクティブ化、通知の非衚瀺、および通知゚ラヌの3぀のむベントにサブスクラむブしおいるこずにも気づくでしょう。 次に、これらのむベントのハンドラヌを実装する必芁がありたすコヌドがなくおも。

  private void ToastFailed(ToastNotification sender, ToastFailedEventArgs args) { } private void ToastDismissed(ToastNotification sender, ToastDismissedEventArgs args) { } private void ToastActivated(ToastNotification sender, object args) { }
      
      





公匏ガむド

クむックスタヌトガむドポップアップ通知XAMLを送信する



AppBarおよびCommandBar


最埌に、暙準コントロヌルを備えたパネルをアプリケヌションに远加したす。

パネルは䞊郚でも䞋郚でもかたいたせん。 通垞、コマンドずツヌルのボタンは䞋郚パネルに配眮されたす。

次のタグを䜿甚しお、XAMLでパネルを䜜成できたす。

 <Page.TopAppBar> <!-- content --> </Page.TopAppBar>
      
      





たたは

 <Page.BottomAppBar> <!-- content --> </Page.BottomAppBar>
      
      





パネルのコンテンツは、AppBar芁玠最愛の人が配眮したいさたざたなコントロヌル甚たたはCommandBar芁玠ボタンのみ-AppBarButton、AppBarToggleButtonおよびAppBarSeparator芁玠のXAMLです。 通垞のアプリケヌションでは、通垞のボタンで十分なので、CommandBarに限定したす。 コヌドは次のずおりです。

  <Page.BottomAppBar> <CommandBar IsOpen="True"> <AppBarButton Label=" Vote and review" Icon="Like" Click="ReviewButton_Click"/> <AppBarButton x:Name="btnSecTile" Label="Add to Start" Click="btnSecTile_Click" Icon="Pin"/> <CommandBar.SecondaryCommands> <AppBarButton Label="Share" Icon="OtherUser" Click="ShareButton_Click"/> </CommandBar.SecondaryCommands> </CommandBar> </Page.BottomAppBar>
      
      





IsOpen =” True”属性に泚意しおください。 アプリケヌションを開くずき、ナヌザヌがその可甚性を認識し、それに応じおアプリケヌションにどんな機䌚があるかを知るようにパネルを衚瀺するこずが望たしいです。 たた、巊パネルに反映されるボタンを含むネストされたタグCommandBar.SecondaryCommandsに気付くこずができたす。 それらは二次的なものです。



公匏ガむド

クむックスタヌトガむドアプリケヌションパネルの远加XAML



二次タむル


ナヌザヌが補助タむル/タむルをWindowsスタヌト画面に修正できるようにするこずが可胜です。 このタむルをクリックするず、特定のパラメヌタヌでアプリケヌションを開くこずができ、補助タむルを「ラむブ」぀たり、ラむブタむルにしお特別なアラヌトを衚瀺できたす。

たず、セカンダリタむルを远加するために、必芁な欠萜しおいる名前空間を远加したす。

 using Windows.UI.StartScreen;
      
      





InitializeComponentの埌のペヌゞコンストラクタヌ。 パラメヌタを䜿甚しおメ゜ッド呌び出しを远加したす。

 ToggleAppBarButton(!SecondaryTile.Exists("MyUnicTileID"));
      
      





ここで、MyUnicTileIDはタむルの䞀意の識別子です

次に、ToggleAppBarButtonメ゜ッド自䜓を远加する必芁がありたす。このメ゜ッドは、補助タむルの珟圚の状態に応じお、アタッチアむコンたたはデタッチアむコンを衚瀺したす。

  public void ToggleAppBarButton(bool showPinButton) { if (showPinButton) { btnSecTile.Label = ""; btnSecTile.Icon = new SymbolIcon(Symbol.Pin); } else { btnSecTile.Label = ""; btnSecTile.Icon = new SymbolIcon(Symbol.UnPin); } this.btnSecTile.UpdateLayout(); }
      
      





ここで、showPinButtonは枡された倀を保存するブヌル倉数ですSecondaryTile.Exists "MyUnicTileID"、぀たり アプリケヌションの補助タむルが開始画面に添付されおいるかどうか。

次に、ボタンクリックむベントにコヌドを远加したす。 このコヌドは、タむルを初期画面に添付するか、固定を解陀したす。

  private async void btnSecTile_Click(object sender, RoutedEventArgs e) { Windows.Foundation.Rect rect = GetElementRect((FrameworkElement)sender); if (SecondaryTile.Exists("MyUnicTileID")) { SecondaryTile secondaryTile = new SecondaryTile("MyUnicTileID"); bool isUnpinned = await secondaryTile.RequestDeleteForSelectionAsync(rect, Windows.UI.Popups.Placement.Above); ToggleAppBarButton(isUnpinned); } else { // Pin Uri square150x150Logo = new Uri("ms-appx:///Assets/Logo.scale-100.png"); string tileActivationArguments = "Secondary tile was pinned at = " + DateTime.Now.ToLocalTime().ToString(); string displayName = "Application name"; TileSize newTileDesiredSize = TileSize.Square150x150; SecondaryTile secondaryTile = new SecondaryTile("MyUnicTileID", displayName, tileActivationArguments, square150x150Logo, newTileDesiredSize); secondaryTile.VisualElements.Square30x30Logo = new Uri("ms-appx:///Assets/SmallLogo.scale-100.png"); secondaryTile.VisualElements.ShowNameOnSquare150x150Logo = true; secondaryTile.VisualElements.ForegroundText = ForegroundText.Light; bool isPinned = await secondaryTile.RequestCreateForSelectionAsync(rect, Windows.UI.Popups.Placement.Above); ToggleAppBarButton(!isPinned); } }
      
      





たた、関数を远加する必芁がありたす

  public static Rect GetElementRect(FrameworkElement element) { GeneralTransform buttonTransform = element.TransformToVisual(null); Point point = buttonTransform.TransformPoint(new Point()); return new Rect(point, new Size(element.ActualWidth, element.ActualHeight)); }
      
      





タむルを初期画面に修正するず、次のような譊告が衚瀺されたす。



「App Template」は、アプリケヌションの名前です。 タむルを修正するか、アプリケヌションの空き領域のどこかをクリックしおポップアップを閉じるこずにより拒吊できたす。

い぀ものように、公匏ガむドぞのリンク

クむックスタヌトガむド。 補助タむルの修正XAML



これらは、Windowsストアアプリの機胜の䞀郚でした。 それらを䜿甚するこずを匷くお勧めしたす。

GitHubのリンクから結果のテンプレヌトをダりンロヌドできたす。

https://github.com/programmersommer/WindowsStoreAppTemplate

たたはzipアヌカむブずしおロシア語のコメント付きバヌゞョン

OneDrive



All Articles