/// <summary> /// Unpins the item from the StartScreen and shows confirmation popup /// at the specified placement, relative to the sourceElement /// </summary> /// <param name="tileId"></param> /// <param name="shortName"></param> /// <param name="displayName"></param> /// <param name="logo"></param> /// <param name="sourceElement"></param> /// <param name="placement"></param> /// <returns></returns> public static async Task <bool> UnpinItem(string tileId, FrameworkElement sourceElement, Placement placement) { var tileToDelete = new SecondaryTile(tileId); bool unpinSuccess = await tileToDelete.RequestDeleteForSelectionAsync(VisualTreeHelperExtensions.GetElementRect(sourceElement), placement); return(unpinSuccess); }
private ContentControl GenerateHintItem(Hint hint) { var container = new ContentControl(); var element = VisualTreeHelperExtensions.GetChildByName(Window.Current.Content as Control, hint.PlacementTargetName); Rect elementRect = VisualTreeHelperExtensions.GetElementRect(element); PlacementMode placement = hint.Placement; container.Width = hint.Width != 0 ? hint.Width : 50; container.Height = hint.Height != 0 ? hint.Height : 50; container.Content = hint.Content; double left = 0; double top = 0; Style style = null; switch (placement) { case PlacementMode.Bottom: { left = elementRect.Left + elementRect.Width / 2 - container.Width / 2; top = elementRect.Top + elementRect.Height; style = this.BottomHintStyle; } break; case PlacementMode.Top: { left = elementRect.Left + elementRect.Width / 2 - container.Width / 2; top = elementRect.Top - container.Height; style = this.TopHintStyle; } break; case PlacementMode.Left: { left = elementRect.Left - container.Width; top = elementRect.Top + elementRect.Height / 2 - container.Height / 2; style = this.LeftHintStyle; } break; case PlacementMode.Right: { left = elementRect.Left + elementRect.Width; top = elementRect.Top + elementRect.Height / 2 - container.Height / 2; style = this.RightHintStyle; } break; } container.Margin = new Thickness(left, top, 0, 0); container.SetValue(ToolTip.StyleProperty, style); return container; }
/// <summary> /// Pins the item to the StartScreen and shows confirmation popup /// at the specified placement, relative to the sourceElement /// </summary> /// <param name="tileId"></param> /// <param name="shortName"></param> /// <param name="displayName"></param> /// <param name="logo"></param> /// <param name="sourceElement"></param> /// <param name="placement"></param> /// <returns></returns> public static async Task <bool> PinItem(string tileId, string shortName, string displayName, Uri logo, FrameworkElement sourceElement, Placement placement) { string arguments = tileId; var newTile = new SecondaryTile(tileId, displayName, arguments, logo, TileSize.Square150x150); newTile.VisualElements.ForegroundText = ForegroundText.Dark; newTile.VisualElements.ShowNameOnSquare150x150Logo = true; bool pinSuccess = await newTile.RequestCreateForSelectionAsync(VisualTreeHelperExtensions.GetElementRect(sourceElement), placement); return(pinSuccess); }