public static ToastContentBuilder AddInlineImage( this ToastContentBuilder builder, string uri, string?alternateText = default, bool?addImageQuery = default, AdaptiveImageCrop?hintCrop = default, bool?hintRemoveMargin = default) { var inlineImage = new AdaptiveImage { Source = uri }; if (hintCrop != null) { inlineImage.HintCrop = hintCrop.Value; } if (alternateText != default) { inlineImage.AlternateText = alternateText; } if (addImageQuery != default) { inlineImage.AddImageQuery = addImageQuery; } return(builder.AddVisualChild(inlineImage)); }
public void AddVisualChildTest_WithCustomVisual_ReturnSelfWithCustomVisualAdded() { // Arrange // Taken from : https://docs.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/adaptive-interactive-toasts#adaptive-content AdaptiveGroup group = new AdaptiveGroup() { Children = { new AdaptiveSubgroup() { Children = { new AdaptiveText() { Text = "52 attendees", HintStyle = AdaptiveTextStyle.Base }, new AdaptiveText() { Text = "23 minute drive", HintStyle = AdaptiveTextStyle.CaptionSubtle } } }, new AdaptiveSubgroup() { Children = { new AdaptiveText() { Text = "1 Microsoft Way", HintStyle = AdaptiveTextStyle.CaptionSubtle, HintAlign = AdaptiveTextAlign.Right }, new AdaptiveText() { Text = "Bellevue, WA 98008", HintStyle = AdaptiveTextStyle.CaptionSubtle, HintAlign = AdaptiveTextAlign.Right } } } } }; ToastContentBuilder builder = new ToastContentBuilder(); // Act ToastContentBuilder anotherReference = builder.AddVisualChild(group); // Assert Assert.AreSame(builder, anotherReference); Assert.IsInstanceOfType(builder.Content.Visual.BindingGeneric.Children.First(), typeof(AdaptiveGroup)); }
private void PopToast() { // Generate the toast notification content ToastContentBuilder builder = new ToastContentBuilder(); // Include launch string so we know what to open when user clicks toast builder.AddArgument("action", "viewForecast"); builder.AddArgument("zip", 98008); // We'll always have this summary text on our toast notification // (it is required that your toast starts with a text element) builder.AddText("Today will be mostly sunny with a high of 63 and a low of 42."); // If Adaptive Toast Notifications are supported if (IsAdaptiveToastSupported()) { // Use the rich Tile-like visual layout builder.AddVisualChild(new AdaptiveGroup() { Children = { GenerateSubgroup("Mon", "Mostly Cloudy.png", 63, 42), GenerateSubgroup("Tue", "Cloudy.png", 57, 38), GenerateSubgroup("Wed", "Sunny.png", 59, 43), GenerateSubgroup("Thu", "Sunny.png", 62, 42), GenerateSubgroup("Fri", "Sunny.png", 71, 66) } }); } // Otherwise... else { // We'll just add two simple lines of text builder .AddText("Monday ⛅ 63° / 42°") .AddText("Tuesday ☁ 57° / 38°"); } // Set the base URI for the images, so we don't redundantly specify the entire path builder.Content.Visual.BaseUri = new Uri("Assets/NotificationAssets/", UriKind.Relative); // Show the toast builder.Show(); }