/// <summary> /// 選択されているアイテムをスタート画面にピン留めする. /// </summary> /// <param name="buttonPosition">呼び出し元ボタンの場所</param> private async void PinSelectedItemToStartAsync(Point buttonPosition) { var item = GetSelectedItem(); if (item == null) { return; } var tile = await Tile.CreateSecodaryTileForItem(item); if (tile == null) { return; } tile.SecondaryTile.DisplayName = String.Format("{0} - {1}", App.MyResource["AppName"], item.Name); var re = new Rect(buttonPosition.X, buttonPosition.Y, 100, 100); if (await tile.SecondaryTile.RequestCreateForSelectionAsync(re)) { await TileHelper.CleanupUnusedTileIdsAsync(); item.Setting.TileId = tile.SecondaryTile.TileId; App.Current.LockscreenItemList.SaveItemsToSetting(); TileHelper.SaveTileRegistration(tile); UpdatePinUnPinToStartBottomAppBarButtons(); } else { await tile.DeleteTileImageCacheFilesAsync(); } }
/// <summary> /// <c>CoreWindow</c>の可視状態が変わった時のイベント処理. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> async void CoreWindow_Current_VisibilityChanged(object sender, Windows.UI.Core.VisibilityChangedEventArgs e) { // 小細工 if (this.wasSavedState && e.Visible) { this.wasSavedState = false; LoadCurrentLockscreenImageAsync(); DoUpdateOnAppLaunchAsync(); await TileHelper.CleanupUnusedTileIdsAsync(); } }
/// <summary> /// AppBarの<c>Loaded</c>イベントを処理する. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void BottomAppBar_Loaded(object sender, RoutedEventArgs e) { var itemsView = GetItemsView(); this.ItemsSelected = (itemListView != null) ? (itemsView.SelectedItem != null) : false; (sender as AppBar).DataContext = this; var panel = (sender as AppBar).Content as Panel; foreach (var ui in panel.Children) { base.StartLayoutUpdates(ui, new RoutedEventArgs()); } PreparePastePopupContentsAsync(); await TileHelper.CleanupUnusedTileIdsAsync(); UpdatePinUnPinToStartBottomAppBarButtons(); }
/// <summary> /// このページには、移動中に渡されるコンテンツを設定します。前のセッションからページを /// 再作成する場合は、保存状態も指定されます。 /// </summary> /// <param name="navigationParameter">このページが最初に要求されたときに /// <see cref="Frame.Navigate(Type, Object)"/> に渡されたパラメーター値。 /// </param> /// <param name="pageState">前のセッションでこのページによって保存された状態の /// ディクショナリ。ページに初めてアクセスするとき、状態は null になります。</param> protected override async void LoadState(Object navigationParameter, Dictionary <String, Object> pageState) { // TODO: バインド可能なアイテムのコレクションを this.DefaultViewModel["Items"] に割り当てます this.DefaultViewModel["Items"] = App.Current.LockscreenItemList; SettingsPane.GetForCurrentView().CommandsRequested += LockscreenItemsPage_CommandsRequested; Window.Current.VisibilityChanged += CoreWindow_Current_VisibilityChanged; LoadCurrentLockscreenImageAsync(); await App.Current.LoadAllItemsAsync(); DoUpdateOnAppLaunchAsync(); if (App.Current.LockscreenItemList.IsEmpty) { await Task.Delay(1000); ShowAppHelpPopup(new Uri(HelpPageUriString)); } await TileHelper.CleanupUnusedTileIdsAsync(); }