예제 #1
0
        public static TileContent GenerateTileContent()
        {
            TileContentBuilder builder = new TileContentBuilder();

            // Small Tile
            builder.AddTile(Notifications.TileSize.Small)
            .SetTextStacking(TileTextStacking.Center, Notifications.TileSize.Small)
            .AddText("Mon", Notifications.TileSize.Small, hintStyle: AdaptiveTextStyle.Body, hintAlign: AdaptiveTextAlign.Center)
            .AddText("63°", Notifications.TileSize.Small, hintStyle: AdaptiveTextStyle.Base, hintAlign: AdaptiveTextAlign.Center);

            // Medium Tile
            builder.AddTile(Notifications.TileSize.Medium)
            .AddAdaptiveTileVisualChild(
                new AdaptiveGroup()
            {
                Children =
                {
                    GenerateSubgroup("Mon", "Mostly Cloudy.png", 63, 42),
                    GenerateSubgroup("Tue", "Cloudy.png",        57, 38)
                }
            }, Notifications.TileSize.Medium);

            // Wide Tile
            builder.AddTile(Notifications.TileSize.Wide)
            .AddAdaptiveTileVisualChild(
                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)
                }
            }, Notifications.TileSize.Wide);

            // Large tile
            builder.AddTile(Notifications.TileSize.Large, GenerateLargeTileContent());

            // 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);

            return(builder.Content);
        }
예제 #2
0
        /// <summary>
        /// Method which sends a tile update.
        /// </summary>
        /// <param name="text">The text of the notification</param>
        public static void SendTileNotification(string text)
        {
            TileContentBuilder builder = new TileContentBuilder();

            builder.AddTile(TileSize.Medium)
            .SetBranding(TileBranding.Logo)
            .SetTextStacking(TileTextStacking.Center, TileSize.Medium)
            .AddText(text, TileSize.Medium, AdaptiveTextStyle.Default, hintWrap: true, hintAlign: AdaptiveTextAlign.Center);

            builder.AddTile(TileSize.Wide)
            .SetBranding(TileBranding.Logo)
            .SetTextStacking(TileTextStacking.Center, TileSize.Wide)
            .AddText(text, TileSize.Wide, AdaptiveTextStyle.Body, hintWrap: true, hintAlign: AdaptiveTextAlign.Center);

            builder.AddTile(TileSize.Large)
            .SetBranding(TileBranding.Logo)
            .SetTextStacking(TileTextStacking.Center, TileSize.Large)
            .AddText(text, TileSize.Large, AdaptiveTextStyle.Body, hintWrap: true, hintAlign: AdaptiveTextAlign.Center);

            TileUpdateManager.CreateTileUpdaterForApplication().Update(new TileNotification(builder.Content.GetXml()));
        }
예제 #3
0
        public static TileContent GenerateTileContent(string username, string avatarLogoSource)
        {
            var builder = new TileContentBuilder();

            // Medium Tile built using only builder method.
            builder.AddTile(Notifications.TileSize.Medium)
            .SetPeekImage(new Uri(avatarLogoSource, UriKind.Relative), Notifications.TileSize.Medium, hintCrop: TilePeekImageCrop.Circle)
            .SetTextStacking(TileTextStacking.Center, Notifications.TileSize.Medium)
            .AddText("Hi,", Notifications.TileSize.Medium, hintStyle: AdaptiveTextStyle.Base, hintAlign: AdaptiveTextAlign.Center)
            .AddText(username, Notifications.TileSize.Medium, hintStyle: AdaptiveTextStyle.CaptionSubtle, hintAlign: AdaptiveTextAlign.Center);

            // Wide Tile using custom-made layout.
            builder.AddTile(Notifications.TileSize.Wide)
            .AddAdaptiveTileVisualChild(GenerateWideTileContent(username, avatarLogoSource), Notifications.TileSize.Wide);

            // Large Tile using custom-made layout conjunction with builder helper method
            builder.AddTile(Notifications.TileSize.Large)
            .AddAdaptiveTileVisualChild(CreateLargeTileLogoPayload(avatarLogoSource), Notifications.TileSize.Large)
            .AddText("Hi,", Notifications.TileSize.Large, hintAlign: AdaptiveTextAlign.Center, hintStyle: AdaptiveTextStyle.Title)
            .AddText(username, Notifications.TileSize.Large, hintAlign: AdaptiveTextAlign.Center, hintStyle: AdaptiveTextStyle.SubtitleSubtle);

            return(builder.Content);
        }
예제 #4
0
        public void AddTextTest_OnLargeTileOnly()
        {
            // Arrange
            string             text    = "text on large tile";
            TileContentBuilder builder = new TileContentBuilder();

            builder.AddTile(TileSize.Large);

            // Act
            builder.AddText(text);

            // Assert
            var tileText = GetTileAdaptiveText(builder, TileSize.Large);

            Assert.IsNotNull(tileText);
            Assert.AreSame("text on large tile", (string)tileText.Text);
        }