private async void UpdateMedium(TileBindingContentAdaptive mediumContent) { TileContent content = new TileContent() { Visual = new TileVisual() { TileMedium = new TileBinding() { Content = mediumContent } } }; try { TileUpdateManager.CreateTileUpdaterForSecondaryTile("SecondaryTile").Update(new TileNotification(content.GetXml())); } catch { SecondaryTile tile = new SecondaryTile("SecondaryTile", "Example", "args", new Uri("ms-appx:///Assets/Logo.png"), TileSize.Default); tile.VisualElements.ShowNameOnSquare150x150Logo = true; tile.VisualElements.ShowNameOnSquare310x310Logo = true; tile.VisualElements.ShowNameOnWide310x150Logo = true; tile.VisualElements.BackgroundColor = Colors.Transparent; await tile.RequestCreateAsync(); TileUpdateManager.CreateTileUpdaterForSecondaryTile("SecondaryTile").Update(new TileNotification(content.GetXml())); } }
public static void CreateScheduledTileNotification(TileContent content, DateTime dueTime, string id) { ScheduledTileNotification scheduledTile = new ScheduledTileNotification(content.GetXml(), dueTime); scheduledTile.Id = id; RemoveSpecScheduledTileNotification(id); TileUpdateManager.CreateTileUpdaterForApplication().AddToSchedule(scheduledTile); }
public static void CreateSubTileNotification(TileContent content, string tileName, TimeSpan duration) { if (SecondaryTile.Exists(tileName)) { var notification = new TileNotification(content.GetXml()); notification.ExpirationTime = DateTimeOffset.UtcNow + duration; var updater = TileUpdateManager.CreateTileUpdaterForSecondaryTile(tileName); updater.Update(notification); } }
private async void ButtonBase_OnClick(object sender, RoutedEventArgs e) { var secondaryTile = new SecondaryTile( "tilePage", "shortname", "displayname", new Uri("ms-appx:///Assets/StoreLogo.png", UriKind.Absolute), TileSize.Default); var success = await secondaryTile.RequestCreateAsync(); if (success) { var tileBindingContentAdaptive = new TileBindingContentAdaptive { Children = { new TileText { Text = "uwp tiles", Style = TileTextStyle.Header }, new TileText { Text = "secondary", Style = TileTextStyle.Body } } }; var tileBinding = new TileBinding { Branding = TileBranding.Name, Content = tileBindingContentAdaptive, DisplayName = "my tile" }; var tileContent = new TileContent { Visual = new TileVisual { TileMedium = tileBinding, TileWide = tileBinding, TileLarge = tileBinding } }; var xmlDoc = tileContent.GetXml(); TileNotification tileNotification = new TileNotification(xmlDoc); var tileUpdaterForSecondaryTile = TileUpdateManager.CreateTileUpdaterForSecondaryTile("tilePage"); tileUpdaterForSecondaryTile.Update(tileNotification); } }
private void Button_Tapped(object sender, TappedRoutedEventArgs e) { var dining = App.MainViewModel.HfsData.resident_dining; var term = App.MainViewModel.TermInfo; var bindingContent = new TileBindingContentAdaptive(); var items = bindingContent.Children; items.Add(new TileText() { Text = $"Balance: ${dining.balance:0.00}", Style = TileTextStyle.Body }); items.Add(new TileText() { Text = $"Days: {term.FullDaysRemaining}", Style = TileTextStyle.Caption }); items.Add(new TileText() { Text = $"Avg/Day: ${dining.balance/term.FullDaysRemaining:0.00}", Style = TileTextStyle.Caption }); var tileBinding = new TileBinding(); tileBinding.Content = bindingContent; tileBinding.DisplayName = "FoodTile"; tileBinding.Branding = TileBranding.NameAndLogo; var content = new TileContent() { Visual = new TileVisual() { TileSmall = tileBinding, TileMedium = tileBinding, TileWide = tileBinding, TileLarge = tileBinding } }; XmlDocument doc = content.GetXml(); var note = new TileNotification(doc); var updater = TileUpdateManager.CreateTileUpdaterForApplication(); updater.Update(note); }
/// <summary> /// Sets the MainTile with new Information /// </summary> /// <param name="income">Income of these month</param> /// <param name="spending">Expense of these month</param> /// <param name="earnings">Earnings of these month </param> public void UpdateMainTile(string income, string spending, string earnings) { TileUpdateManager.CreateTileUpdaterForApplication().Clear(); var content = new TileContent { Visual = new TileVisual { TileMedium = GetBindingMediumContent(income, spending, earnings), TileWide = GetBindingWideContent(income, spending, earnings), TileLarge = GetBindingLargeContent(income, spending, earnings) } }; // Update Tile TileUpdateManager.CreateTileUpdaterForApplication().Update(new TileNotification(content.GetXml())); }
private void ButtonSendTileNotification_Click(object sender, RoutedEventArgs e) { TileBindingContentAdaptive bindingContent = new TileBindingContentAdaptive() { Children = { GenerateEmailGroup("Jennifer Parker", "Photos from our trip"), GenerateEmailGroup("Steve Bosniak", "Want to go out for dinner after Build tonight?") } }; TileBinding binding = new TileBinding() { Content = bindingContent }; TileContent content = new TileContent() { Visual = new TileVisual() { TileMedium = binding } }; DataPackage dp = new DataPackage(); dp.SetText(content.GetContent()); Clipboard.SetContent(dp); return; string xmlAsString = content.GetContent(); TileNotification notification = new TileNotification(content.GetXml()); content.Visual.TileMedium = new TileBinding() { Branding = TileBranding.Logo, Content = new TileBindingContentAdaptive() }; ComboBox comboBox = new ComboBox(); //var tileContent = NotificationsExtensions.GenerateTileContent(); //TileNotification notif = new TileNotification(null); //ITileSquareText01 tileContent = TileContentFactory.CreateTileSquareText01(); }
/// <summary> /// Sets the MainTile with new Information /// </summary> /// <param name="income">Income of these month</param> /// <param name="spending">Expense of these month</param> /// <param name="earnings">Earnings of these month </param> public void UpdateMainTile(string income, string spending, string earnings) { TileUpdateManager.CreateTileUpdaterForApplication().Clear(); if (ServiceLocator.Current.GetInstance<SettingsShortcutsViewModel>().ShowInfoOnMainTile) { var content = new TileContent { Visual = new TileVisual { TileMedium = GetBindingMediumContent(income, spending, earnings), TileWide = GetBindingWideContent(income, spending, earnings), TileLarge = GetBindingLargeContent(income, spending, earnings) } }; // Update Tile TileUpdateManager.CreateTileUpdaterForApplication().Update(new TileNotification(content.GetXml())); } }
private void ButtonUpdatePrimary_Click(object sender, RoutedEventArgs e) { // Create the notification content TileContent content = new TileContent() { Visual = new TileVisual() { // Recommended to use 9 photos on Medium TileMedium = GeneratePeopleBinding(9), // Recommended to use 15 photos on Wide TileWide = GeneratePeopleBinding(15), // Recommended to use 20 photos on Large TileLarge = GeneratePeopleBinding(20) } }; // And then update the primary tile TileUpdateManager.CreateTileUpdaterForApplication().Update(new TileNotification(content.GetXml())); }
private void button_Click(object sender, RoutedEventArgs e) { var bindingContent = new TileBindingContentAdaptive { PeekImage = new TilePeekImage { Source = new TileImageSource("Assets/Square150x150Logo.png") }, Children = { new TileText { Text = "Hello world", Style = TileTextStyle.Title }, new TileText { Text = "okazuki", Style = TileTextStyle.Body }, } }; var tileBinding = new TileBinding { Branding = TileBranding.NameAndLogo, Content = bindingContent, DisplayName = "Hello display name", }; var content = new TileContent { Visual = new TileVisual { TileSmall = tileBinding, TileMedium = tileBinding, TileLarge = tileBinding, TileWide = tileBinding, } }; var n = new TileNotification(content.GetXml()); TileUpdateManager.CreateTileUpdaterForApplication() .Update(n); }
public static XmlDocument Generate() { // Small content //var smallContent = TileContentFactory.SpecialTemplates.Contact.CreateSmall(); //smallContent.Image = new TileImageSource("http://build2015-tile-polling.azurewebsites.net/assets/hipster.jpg"); var smallContent = new TileBindingContentAdaptive(); // Medium content //var mediumContent = TileContentFactory.Adaptive.CreateMedium(); var mediumContent = new TileBindingContentAdaptive() { TextStacking = TileTextStacking.Center, Children = { new TileText() { Text = "Hi,", Style = TileTextStyle.Base, Align = TileTextAlign.Center }, new TileText() { Text = "MasterHip", Style = TileTextStyle.CaptionSubtle, Align = TileTextAlign.Center } } }; // Wide content var wideContent = new TileBindingContentAdaptive() { Children = { new TileGroup() { Children = { new TileSubgroup() { Weight = 33, Children = { new TileImage() { Source = new TileImageSource("http://build2015-tile-polling.azurewebsites.net/assets/hipster.jpg"), Crop = TileImageCrop.Circle } } }, new TileSubgroup() { TextStacking = TileTextStacking.Center, Children = { new TileText() { Text = "Hi,", Style = TileTextStyle.Title }, new TileText() { Text = "MasterHip", Style = TileTextStyle.SubtitleSubtle } } } } } } }; // Large content var largeContent = new TileBindingContentAdaptive() { TextStacking = TileTextStacking.Center, Children = { new TileGroup() { Children = { // this is for left padding new TileSubgroup() { Weight = 1 }, // this is the image itself new TileSubgroup() { Weight = 2, Children = { new TileImage() { Source = new TileImageSource("http://build2015-tile-polling.azurewebsites.net/assets/hipster.jpg"), Crop = TileImageCrop.Circle } } }, // this is for right padding new TileSubgroup() { Weight = 1 } } }, new TileText() { Text = "Hi,", Style = TileTextStyle.Title, Align = TileTextAlign.Center }, new TileText() { Text = "MasterHip", Style = TileTextStyle.SubtitleSubtle, Align = TileTextAlign.Center } } }; TileContent content = new TileContent() { Visual = new TileVisual() { Branding = TileBranding.Name, TileSmall = new TileBinding() { Content = smallContent }, TileMedium = new TileBinding() { Content = mediumContent }, TileWide = new TileBinding() { Content = wideContent }, TileLarge = new TileBinding() { Branding = TileBranding.NameAndLogo, DisplayName = "Xbox - MasterHip", Content = largeContent } } }; throw new NotImplementedException(); }
public MainPage() { this.InitializeComponent(); TileContent content = new TileContent() { Visual = new TileVisual() { Branding = TileBranding.NameAndLogo, TileSmall = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = "Small" } } } }, TileMedium = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = "Medium" } } } }, TileWide = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = "Wide" } } } }, TileLarge = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = "Large" } } } } } }; var tn = new Windows.UI.Notifications.TileNotification(content.GetXml()); var updater = Windows.UI.Notifications.TileUpdateManager.CreateTileUpdaterForApplication(); updater.Update(tn); }
private void Button_Click_1(object sender, RoutedEventArgs e) { Random rnd = new Random(DateTime.Now.Second); TileContent content = new TileContent() { Visual = new TileVisual() { Branding = TileBranding.NameAndLogo, TileSmall = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = "Small" + rnd.Next(30) } } } }, TileMedium = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = "Medium" + rnd.Next(30) } } } }, TileWide = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = "Wide" + rnd.Next(30) } } } }, TileLarge = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = "Large" + rnd.Next(30) } } } } } }; var stn = new Windows.UI.Notifications.ScheduledTileNotification(content.GetXml(), new DateTimeOffset(DateTime.Now.AddSeconds(10))); var updater = Windows.UI.Notifications.TileUpdateManager.CreateTileUpdaterForApplication(); updater.AddToSchedule(stn); }
public static TileContent GenerateNormalTile(HeWeatherModel model, bool isNight, string glance, string glanceFull, Uri uri, int todayIndex, CitySettingsModel currentCity, SettingsModel settings) { var ctosConverter = new ConditiontoTextConverter(); var ctoiConverter = new ConditiontoImageConverter(); var loader = new ResourceLoader(); #region TileContent NowContent = new TileContent() { Visual = new TileVisual() { Branding = TileBranding.Auto, DisplayName = currentCity.City, TileMedium = new TileBinding() { Content = new TileBindingContentAdaptive() { PeekImage = uri == null ? null : (settings.Preferences.TransparentTile ? null : new TilePeekImage() { Source = new TileImageSource(uri.ToString()), }), BackgroundImage = uri == null ? null : (settings.Preferences.TransparentTile ? null : new TileBackgroundImage() { Source = new TileImageSource(uri.ToString()), Overlay = 70 }), Children = { new TileText(), new TileText() { Text = (string)ctosConverter.Convert(model.NowWeather.Now.Condition,null,null,null), Align = TileTextAlign.Center }, new TileText() { Text = model.DailyForecast[todayIndex].HighTemp.Actual(settings.Preferences.TemperatureParameter).ToString(), Align = TileTextAlign.Center }, new TileText() { Text = model.DailyForecast[todayIndex].LowTemp.Actual(settings.Preferences.TemperatureParameter).ToString(), Align = TileTextAlign.Center, Style = TileTextStyle.CaptionSubtle } } } }, TileWide = new TileBinding() { DisplayName = glance, Branding = TileBranding.NameAndLogo, Content = new TileBindingContentAdaptive() { BackgroundImage = uri == null ? null : (settings.Preferences.TransparentTile ? null : new TileBackgroundImage() { Source = new TileImageSource(uri.ToString()), Overlay = 70 }), Children = { new TileGroup() { Children= { new TileSubgroup() { Weight = 1, Children = { new TileText() { Text = model.DailyForecast[todayIndex].Date.ToString("ddd"), Align = TileTextAlign.Center, Style = TileTextStyle.Caption }, new TileImage() { Source = new TileImageSource("Assets/Tile/" + (string)ctoiConverter.Convert(model.NowWeather.Now.Condition,null,isNight,null)) }, new TileText() { Align = TileTextAlign.Center, Style = TileTextStyle.Caption }, } }, new TileSubgroup() { Weight = 2, TextStacking = TileTextStacking.Center, Children = { new TileText() { Style = TileTextStyle.CaptionSubtle, Align = TileTextAlign.Center }, new TileText() { Text = (string)ctosConverter.Convert(model.NowWeather.Now.Condition,null,null,null), Align = TileTextAlign.Center, Style = TileTextStyle.Caption }, new TileText() { Text = model.DailyForecast[todayIndex].HighTemp.Actual(settings.Preferences.TemperatureParameter).ToString(), Align = TileTextAlign.Center, Style = TileTextStyle.Caption }, new TileText() { Text = model.DailyForecast[todayIndex].LowTemp.Actual(settings.Preferences.TemperatureParameter).ToString(), Style = TileTextStyle.CaptionSubtle, Align = TileTextAlign.Center } } }, new TileSubgroup() { Weight = 1, Children = { new TileText() { Align = TileTextAlign.Center, Style = TileTextStyle.CaptionSubtle }, new TileText() { Text = loader.GetString("ScaleText"), Align = TileTextAlign.Center, Style = TileTextStyle.CaptionSubtle }, new TileText() { Align = TileTextAlign.Center, Style = TileTextStyle.CaptionSubtle }, new TileText() { Text = loader.GetString("HumText"), Align = TileTextAlign.Center, Style = TileTextStyle.CaptionSubtle }, } }, new TileSubgroup() { Weight = 2, TextStacking = TileTextStacking.Center, Children = { new TileText() { Style = TileTextStyle.CaptionSubtle, Align = TileTextAlign.Left }, new TileText() { Text = model.NowWeather.Wind.Speed.Actual(settings.Preferences.SpeedParameter) + model.NowWeather.Wind.Speed.DanWei(settings.Preferences.SpeedParameter), Align = TileTextAlign.Left, Style = TileTextStyle.Caption }, new TileText() { Style = TileTextStyle.CaptionSubtle, Align = TileTextAlign.Left }, new TileText() { Text = model.DailyForecast[todayIndex].Humidity.ToString() + "%", Align = TileTextAlign.Left, Style = TileTextStyle.Caption }, } }, } } }, PeekImage = uri == null ? null : (settings.Preferences.TransparentTile ? null : new TilePeekImage() { Source = new TileImageSource(uri.ToString()), }), } }, TileLarge = new TileBinding() { Content = new TileBindingContentAdaptive() { BackgroundImage = uri == null ? null : (settings.Preferences.TransparentTile ? null : new TileBackgroundImage() { Source = new TileImageSource(uri.ToString()), Overlay = 70 }), Children = { new TileGroup() { Children = { new TileSubgroup() { Weight = 30, Children = { new TileImage() { Source = new TileImageSource("Assets/Tile/" + (string)ctoiConverter.Convert(model.NowWeather.Now.Condition,null,isNight,null)) }, } }, new TileSubgroup() { TextStacking = TileTextStacking.Center, Children = { new TileText() { Text = model.DailyForecast[todayIndex].Date.ToString("ddd"), Style = TileTextStyle.Base }, new TileText() { Text = model.DailyForecast[todayIndex].HighTemp.Actual(settings.Preferences.TemperatureParameter).ToString() + '~' + model.DailyForecast[todayIndex].LowTemp.Actual(settings.Preferences.TemperatureParameter).ToString(), Align = TileTextAlign.Auto, Style = TileTextStyle.Caption }, new TileText() { Text = glanceFull, Align = TileTextAlign.Auto, Style = TileTextStyle.CaptionSubtle, Wrap = true } } }, }, }, new TileText(), new TileGroup() { Children = { new TileSubgroup() { Weight = 30, Children = { new TileImage() { Source = new TileImageSource("Assets/Tile/" + (string)ctoiConverter.Convert(model.NowWeather.Now.Condition,null,isNight,null)) }, } }, new TileSubgroup() { TextStacking = TileTextStacking.Center, Children = { new TileText() { Text = model.DailyForecast[todayIndex+1].Date.ToString("ddd"), Style = TileTextStyle.Base }, new TileText() { Text = model.DailyForecast[todayIndex + 1].HighTemp.Actual(settings.Preferences.TemperatureParameter).ToString() + '~' + model.DailyForecast[todayIndex + 1].LowTemp.Actual(settings.Preferences.TemperatureParameter).ToString(), Align = TileTextAlign.Auto, Style = TileTextStyle.Caption }, new TileText() { Text = loader.GetString("ScaleText")+": "+model.DailyForecast[todayIndex+1].Wind.Speed.Actual(settings.Preferences.SpeedParameter) + model.DailyForecast[todayIndex+1].Wind.Speed.DanWei(settings.Preferences.SpeedParameter), Align = TileTextAlign.Auto, Style = TileTextStyle.CaptionSubtle, }, new TileText() { Text = loader.GetString("HumText")+": "+model.DailyForecast[todayIndex+1].Humidity.ToString() + "%", Align = TileTextAlign.Auto, Style = TileTextStyle.CaptionSubtle, Wrap = true } } }, } } }, PeekImage = uri == null ? null : (settings.Preferences.TransparentTile ? null : new TilePeekImage() { Source = new TileImageSource(uri.ToString()), }), } } } }; #endregion return NowContent; }
private static TileContent GenerateForecastTile(HeWeatherModel model, bool isNight, Uri uri, string glanceFull, string lockdetial, int todayIndex, CitySettingsModel currentCity, SettingsModel settings) { var ctosConverter = new ConditiontoTextConverter(); var ctoiConverter = new ConditiontoImageConverter(); var forecaset = new TileContent() { Visual = new TileVisual() { DisplayName = currentCity.City, Branding = TileBranding.NameAndLogo, LockDetailedStatus1 = currentCity.City + " " + model.NowWeather.Temprature.Actual(settings.Preferences.TemperatureParameter) + "\r\n" + lockdetial, TileLarge = new TileBinding() { Content = new TileBindingContentAdaptive() { BackgroundImage = uri == null ? null : (settings.Preferences.TransparentTile ? null : new TileBackgroundImage() { Source = new TileImageSource(uri.ToString()), Overlay = 70 }), Children = { new TileText(), new TileGroup() { Children = { new TileSubgroup() { Weight = 1, }, new TileSubgroup() { Weight = 1, Children= { new TileText() { Text = model.DailyForecast.Length > todayIndex + 1 ? model.DailyForecast[todayIndex+1].Date.ToString("ddd") : "", }, new TileImage() { Source = model.DailyForecast.Length > todayIndex + 1 ? new TileImageSource("Assets/Tile/" + (string)ctoiConverter.Convert(isNight?model.DailyForecast[todayIndex+1].Condition.NightCond:model.DailyForecast[todayIndex+1].Condition.DayCond,null,isNight,null)) : new TileImageSource(""), }, } }, new TileSubgroup() { Weight = 1, TextStacking = TileTextStacking.Bottom, Children= { new TileText() { Text = model.DailyForecast.Length > todayIndex + 1 ? model.DailyForecast[todayIndex+1].HighTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.Caption }, new TileText() { Text = model.DailyForecast.Length > todayIndex + 1 ? model.DailyForecast[todayIndex+1].LowTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.CaptionSubtle }, } }, new TileSubgroup() { Weight = 1, Children= { new TileText() { Text = model.DailyForecast.Length > todayIndex + 2 ? model.DailyForecast[todayIndex+2].Date.ToString("ddd") : "", }, new TileImage() { Source = model.DailyForecast.Length > todayIndex + 2 ? new TileImageSource("Assets/Tile/" + (string)ctoiConverter.Convert(isNight?model.DailyForecast[todayIndex+2].Condition.NightCond:model.DailyForecast[todayIndex+2].Condition.DayCond,null,isNight,null)) : new TileImageSource(""), }, } }, new TileSubgroup() { Weight = 1, TextStacking = TileTextStacking.Bottom, Children= { new TileText() { Text = model.DailyForecast.Length > todayIndex + 2 ? model.DailyForecast[todayIndex+2].HighTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.Caption }, new TileText() { Text = model.DailyForecast.Length > todayIndex + 2 ? model.DailyForecast[todayIndex+2].LowTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.CaptionSubtle }, } }, new TileSubgroup() { Weight = 1, }, } }, new TileText(), new TileGroup() { Children = { new TileSubgroup() { Weight = 1, }, new TileSubgroup() { Weight = 1, Children= { new TileText() { Text = model.DailyForecast.Length > todayIndex + 3 ? model.DailyForecast[todayIndex+3].Date.ToString("ddd") : "", }, new TileImage() { Source = model.DailyForecast.Length > todayIndex + 3 ? new TileImageSource("Assets/Tile/" + (string)ctoiConverter.Convert(isNight?model.DailyForecast[todayIndex+3].Condition.NightCond:model.DailyForecast[todayIndex+3].Condition.DayCond,null,isNight,null)) : new TileImageSource(""), }, } }, new TileSubgroup() { Weight = 1, TextStacking = TileTextStacking.Bottom, Children= { new TileText() { Text = model.DailyForecast.Length > todayIndex + 3 ? model.DailyForecast[todayIndex+3].HighTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.Caption }, new TileText() { Text = model.DailyForecast.Length > todayIndex + 3 ? model.DailyForecast[todayIndex+3].LowTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.CaptionSubtle }, } }, new TileSubgroup() { Weight = 1, Children= { new TileText() { Text = model.DailyForecast.Length > todayIndex + 4 ? model.DailyForecast[todayIndex+4].Date.ToString("ddd") : "", }, new TileImage() { Source = model.DailyForecast.Length > todayIndex + 4 ? new TileImageSource("Assets/Tile/" + (string)ctoiConverter.Convert(isNight ? model.DailyForecast[todayIndex+4].Condition.NightCond : model.DailyForecast[todayIndex+4].Condition.DayCond, null, isNight, null)) : new TileImageSource(""), }, } }, new TileSubgroup() { Weight = 1, TextStacking = TileTextStacking.Bottom, Children= { new TileText() { Text = model.DailyForecast.Length > todayIndex + 4 ? model.DailyForecast[todayIndex+4].HighTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.Caption }, new TileText() { Text = model.DailyForecast.Length > todayIndex + 4 ? model.DailyForecast[todayIndex+4].LowTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.CaptionSubtle }, } }, new TileSubgroup() { Weight = 1, }, } } } } }, TileMedium = new TileBinding() { Content = new TileBindingContentAdaptive() { BackgroundImage = uri == null ? null : (settings.Preferences.TransparentTile ? null : new TileBackgroundImage() { Source = new TileImageSource(uri.ToString()), Overlay = 70 }), Children = { new TileText() { }, new TileText() { Text = model.DailyForecast.Length > todayIndex + 1 ? model.DailyForecast[todayIndex+1].Date.ToString("ddd") : "", Align = TileTextAlign.Center }, new TileText() { Text = model.DailyForecast.Length > todayIndex + 1 ? model.DailyForecast[todayIndex+1].HighTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.Caption }, new TileText() { Text = model.DailyForecast.Length > todayIndex + 1 ? model.DailyForecast[todayIndex+1].LowTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.CaptionSubtle }, } } }, TileWide = new TileBinding() { Content = new TileBindingContentAdaptive() { BackgroundImage = uri == null ? null : (settings.Preferences.TransparentTile ? null : new TileBackgroundImage() { Source = new TileImageSource(uri.ToString()), Overlay = 70 }), Children = { new TileGroup() { Children = { new TileSubgroup() { Weight = 1, Children = { new TileText() { Text = model.DailyForecast.Length > todayIndex + 1 ? model.DailyForecast[todayIndex+1].Date.ToString("ddd") : "", }, new TileImage() { Source = model.DailyForecast.Length > todayIndex + 1 ? new TileImageSource("Assets/Tile/" + (string)ctoiConverter.Convert(isNight ? model.DailyForecast[todayIndex+1].Condition.NightCond : model.DailyForecast[todayIndex+1].Condition.DayCond, null, isNight, null)) : new TileImageSource(""), }, } }, new TileSubgroup() { Weight = 1, TextStacking = TileTextStacking.Bottom, Children = { new TileText() { Text = model.DailyForecast.Length > todayIndex + 1 ? model.DailyForecast[todayIndex+1].HighTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.Caption }, new TileText() { Text = model.DailyForecast.Length > todayIndex + 1 ? model.DailyForecast[todayIndex+1].LowTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.CaptionSubtle }, } }, new TileSubgroup() { Weight = 1, Children = { new TileText() { Text = model.DailyForecast.Length > todayIndex + 2 ? model.DailyForecast[todayIndex+2].Date.ToString("ddd") : "", }, new TileImage() { Source = model.DailyForecast.Length > todayIndex + 2 ? new TileImageSource("Assets/Tile/" + (string)ctoiConverter.Convert(isNight ? model.DailyForecast[todayIndex+2].Condition.NightCond : model.DailyForecast[todayIndex+2].Condition.DayCond, null, isNight, null)) : new TileImageSource(""), }, } }, new TileSubgroup() { Weight = 1, TextStacking = TileTextStacking.Bottom, Children = { new TileText() { Text = model.DailyForecast.Length > todayIndex + 2 ? model.DailyForecast[todayIndex+2].HighTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.Caption }, new TileText() { Text = model.DailyForecast.Length > todayIndex + 2 ? model.DailyForecast[todayIndex+2].LowTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.CaptionSubtle }, } }, new TileSubgroup() { Weight = 1, Children = { new TileText() { Text = model.DailyForecast.Length > todayIndex + 3 ? model.DailyForecast[todayIndex+3].Date.ToString("ddd") : "", }, new TileImage() { Source = model.DailyForecast.Length > todayIndex + 3 ? new TileImageSource("Assets/Tile/" + (string)ctoiConverter.Convert(isNight ? model.DailyForecast[todayIndex+3].Condition.NightCond : model.DailyForecast[todayIndex+3].Condition.DayCond, null, isNight, null)) : new TileImageSource(""), }, } }, new TileSubgroup() { Weight = 1, TextStacking = TileTextStacking.Bottom, Children = { new TileText() { Text = model.DailyForecast.Length > todayIndex + 3 ? model.DailyForecast[todayIndex+3].HighTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.Caption }, new TileText() { Text = model.DailyForecast.Length > todayIndex + 3 ? model.DailyForecast[todayIndex+3].LowTemp.Actual(settings.Preferences.TemperatureParameter) : "", Style = TileTextStyle.CaptionSubtle }, } }, } }, } } } } }; return forecaset; }
public static void Update() { string from = "Jennifer Parker"; string subject = "Photos from our trip"; string body = "Check out these awesome photos I took while in New Zealand!"; var content = new TileContent() { Visual = new TileVisual() { TileMedium = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = from }, new TileText() { Text = subject, Style = TileTextStyle.CaptionSubtle }, new TileText() { Text = body, Style = TileTextStyle.CaptionSubtle } } } }, TileWide = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = from, Style = TileTextStyle.Subtitle }, new TileText() { Text = subject, Style = TileTextStyle.CaptionSubtle }, new TileText() { Text = body, Style = TileTextStyle.CaptionSubtle } } } } } }; var notification = new TileNotification(content.GetXml()); TileUpdateManager.CreateTileUpdaterForApplication().Update(notification); }
public static void CreateRecentActvityLiveTile(Feed feed) { TileBindingContentAdaptive bindingContent; if (feed.SmallImageUrl != null) { bindingContent = new TileBindingContentAdaptive() { PeekImage = new TilePeekImage() { Crop = TileImageCrop.None, Overlay = 0, Source = new TileImageSource(feed.SmallImageUrl) }, Children = { new TileText() { Text = feed.Caption, Wrap = true, Style = TileTextStyle.Body } } }; } else { bindingContent = new TileBindingContentAdaptive() { Children = { new TileText() { Text = feed.Caption, Wrap = true, Style = TileTextStyle.Body } } }; } var binding = new TileBinding() { Branding = TileBranding.NameAndLogo, Content = bindingContent }; var content = new TileContent() { Visual = new TileVisual() { TileMedium = binding, TileWide = binding, TileLarge = binding } }; var tileXml = content.GetXml(); var tileNotification = new TileNotification(tileXml); TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification); }
public void Test_Tile_Xml_Adaptive_PeekImage_NoImageSource() { try { TileContent c = new TileContent() { Visual = new TileVisual() { TileMedium = new TileBinding() { Content = new TileBindingContentAdaptive() { PeekImage = new TilePeekImage() { // No source, which should throw exception when content retrieved } } } } }; c.GetContent(); } catch (NullReferenceException) { return; } Assert.Fail("Exception should have been thrown"); }
private static void AssertPayload(string expectedXml, TileContent tile) { AssertHelper.AssertXml(expectedXml, tile.GetContent()); }
public void ModifyTile(string from, string subject, string body) { TileUpdateManager.CreateTileUpdaterForApplication().Clear(); TileContent content = new TileContent() { Visual = new TileVisual() { TileMedium = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = from }, new TileText() { Text = subject, Style = TileTextStyle.CaptionSubtle }, new TileText() { Text = body, Style = TileTextStyle.CaptionSubtle } } } }, TileWide = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = from, Style = TileTextStyle.Subtitle }, new TileText() { Text = subject, Style = TileTextStyle.CaptionSubtle }, new TileText() { Text = body, Style = TileTextStyle.CaptionSubtle } } } }, TileLarge = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = from, Style = TileTextStyle.Subtitle }, new TileText() { Text = subject, Style = TileTextStyle.CaptionSubtle }, new TileText() { Text = body, Style = TileTextStyle.CaptionSubtle } } } } } }; var notification = new TileNotification(content.GetXml()); TileUpdateManager.CreateTileUpdaterForApplication().Update(notification); }
public void TestXboxModernTile() { TileBinding medium = new TileBinding() { Content = new TileBindingContentAdaptive() { TextStacking = TileTextStacking.Center, Children = { new AdaptiveText() { Text = "Hi,", HintStyle = AdaptiveTextStyle.Base, HintAlign = AdaptiveTextAlign.Center }, new AdaptiveText() { Text = "MasterHip", HintStyle = AdaptiveTextStyle.CaptionSubtle, HintAlign = AdaptiveTextAlign.Center } } } }; TileBinding wide = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new AdaptiveGroup() { Children = { new AdaptiveSubgroup() { HintWeight = 33, Children = { new AdaptiveImage() { Source = "http://xbox.com/MasterHip/profile.jpg", HintCrop = AdaptiveImageCrop.Circle } } }, new AdaptiveSubgroup() { HintTextStacking = AdaptiveSubgroupTextStacking.Center, Children = { new AdaptiveText() { Text = "Hi,", HintStyle = AdaptiveTextStyle.Title }, new AdaptiveText() { Text = "MasterHip", HintStyle = AdaptiveTextStyle.SubtitleSubtle } } } } } } } }; TileBinding large = new TileBinding() { Content = new TileBindingContentAdaptive() { TextStacking = TileTextStacking.Center, Children = { new AdaptiveGroup() { Children = { new AdaptiveSubgroup() { HintWeight = 1 }, new AdaptiveSubgroup() { HintWeight = 2, Children = { new AdaptiveImage() { Source = "http://xbox.com/MasterHip/profile.jpg", HintCrop = AdaptiveImageCrop.Circle } } }, new AdaptiveSubgroup() { HintWeight = 1 } } }, new AdaptiveText() { Text = "Hi,", HintStyle = AdaptiveTextStyle.Title, HintAlign = AdaptiveTextAlign.Center }, new AdaptiveText() { Text = "MasterHip", HintStyle = AdaptiveTextStyle.SubtitleSubtle, HintAlign = AdaptiveTextAlign.Center } } } }; TileContent content = new TileContent() { Visual = new TileVisual() { Branding = TileBranding.NameAndLogo, TileMedium = medium, TileWide = wide, TileLarge = large } }; string expectedXml = $@"<?xml version=""1.0"" encoding=""utf-8""?><tile><visual branding=""nameAndLogo"">"; // Medium expectedXml += @"<binding template=""TileMedium"" hint-textStacking=""center""><text hint-align=""center"" hint-style=""base"">Hi,</text><text hint-align=""center"" hint-style=""captionSubtle"">MasterHip</text></binding>"; // Wide expectedXml += @"<binding template=""TileWide""><group><subgroup hint-weight=""33""><image src=""http://xbox.com/MasterHip/profile.jpg"" hint-crop=""circle"" /></subgroup><subgroup hint-textStacking=""center""><text hint-style=""title"">Hi,</text><text hint-style=""subtitleSubtle"">MasterHip</text></subgroup></group></binding>"; // Large expectedXml += @"<binding template=""TileLarge"" hint-textStacking=""center""><group><subgroup hint-weight=""1"" /><subgroup hint-weight=""2""><image src=""http://xbox.com/MasterHip/profile.jpg"" hint-crop=""circle"" /></subgroup><subgroup hint-weight=""1"" /></group><text hint-align=""center"" hint-style=""title"">Hi,</text><text hint-align=""center"" hint-style=""subtitleSubtle"">MasterHip</text></binding>"; expectedXml += "</visual></tile>"; string actualXml = content.GetContent(); AssertHelper.AssertXml(expectedXml, actualXml); //Assert.AreEqual(expectedXml, actualXml); }
internal async Task<bool> PinAsync(DetailPageViewModel detailPageViewModel) { var name = "Tiles sample"; var title = "Template 10"; var body = detailPageViewModel.Value; var image = "https://raw.githubusercontent.com/Windows-XAML/Template10/master/Assets/Template10.png"; var bindingContent = new TileBindingContentAdaptive() { PeekImage = new TilePeekImage() { Source = new TileImageSource(image) }, Children = { new TileText() { Text = title, Style = TileTextStyle.Body }, new TileText() { Text = body, Wrap = true, Style = TileTextStyle.CaptionSubtle } } }; var binding = new TileBinding() { Branding = TileBranding.NameAndLogo, DisplayName = name, Content = bindingContent }; var content = new TileContent() { Visual = new TileVisual() { TileMedium = binding, TileWide = binding, TileLarge = binding } }; var xml = content.GetXml(); // show tile var tileId = detailPageViewModel.ToString(); if (!await IsPinned(detailPageViewModel)) { // initial pin var logo = new Uri("ms-appx:///Assets/Logo.png"); var secondaryTile = new SecondaryTile(tileId) { Arguments = detailPageViewModel.Value, DisplayName = name, VisualElements = { Square44x44Logo = logo, Square150x150Logo = logo, Wide310x150Logo = logo, Square310x310Logo = logo, ShowNameOnSquare150x150Logo = true, }, }; if (!await secondaryTile.RequestCreateAsync()) { System.Diagnostics.Debugger.Break(); return false; } } // add notifications var tileNotification = new TileNotification(xml); var tileUpdater = TileUpdateManager.CreateTileUpdaterForSecondaryTile(tileId); tileUpdater.Update(tileNotification); // show toast ShowToast(detailPageViewModel); // result return true; }
public async void Run(IBackgroundTaskInstance taskInstance) { BackgroundTaskDeferral _defferal = taskInstance.GetDeferral(); var appdata = ApplicationData.Current.LocalSettings; if (!(bool) (appdata.Values["TileUpdates"] ?? false) && !(bool) (appdata.Values["UseToasts"] ?? false)) // if task isn't needed, kill it { _defferal.Complete(); return; } PasswordVault vault = new PasswordVault(); PasswordCredential cred; try { cred = vault.FindAllByResource("MYUW").First(); // Make sure this matches CredResName } catch { _defferal.Complete(); return; } var connector = new MUConnector(cred); if (await connector.Login()) { //double lastValue = (float)(appdata.Values["LastValue"] ?? -1); //shit's stored as a float... avoids invalid cast float lastValue = -1; if (appdata.Values.ContainsKey("LastValue")) { float? lv = appdata.Values["LastValue"] as float?; // stupid workarounds for float precision lastValue = lv.Value; } var hfs = await connector.GetHfsData(); var term = await connector.GetTermInfo(); double average = hfs.resident_dining.balance / term.AdjustedDaysRemaining(LoadSavedDates()); if ((bool)(appdata.Values["TileUpdates"] ?? false)) { var bindingContent = new TileBindingContentAdaptive(); var medBindingContent = new TileBindingContentAdaptive(); var items = bindingContent.Children; var medItems = medBindingContent.Children; medItems.Add(new TileText() { Text = $"{hfs.resident_dining.balance:C} remaining", Style = TileTextStyle.Body }); items.Add(new TileText() { Text = $"{hfs.resident_dining.balance:C} remaining", Style = TileTextStyle.Subtitle }); var line2 = new TileText() { Text = $"{term.AdjustedDaysRemaining(LoadSavedDates())} days", Style = TileTextStyle.Caption }; var line3 = new TileText() { Text = $"${average:0.00} per day", Style = TileTextStyle.Caption }; items.Add(line2); items.Add(line3); medItems.Add(line2); medItems.Add(line3); var tileBinding = new TileBinding() { Content = bindingContent, DisplayName = "FoodTile", Branding = TileBranding.NameAndLogo }; var medTileBinding = new TileBinding() { Content = medBindingContent, DisplayName = "FoodTile", Branding = TileBranding.NameAndLogo }; var content = new TileContent() { Visual = new TileVisual { TileMedium = medTileBinding, TileWide = tileBinding, TileLarge = tileBinding } }; var note = new TileNotification(content.GetXml()); var updater = TileUpdateManager.CreateTileUpdaterForApplication(); updater.Update(note); } if (hfs.resident_dining.balance != lastValue) { if ((bool)(appdata.Values["UseToasts"] ?? false)) { var toastContent = new ToastContent() { Visual = new ToastVisual() { TitleText = new ToastText() { Text = $"Dining Balance ${hfs.resident_dining.balance:0.00}" }, BodyTextLine1 = new ToastText() { Text = $"New daily average ${average:0.00}" }, BodyTextLine2 = new ToastText() { Text = $"{term.AdjustedDaysRemaining(LoadSavedDates())} days remaining in quarter" } } }; var note = ToastNotificationManager.CreateToastNotifier(); var toast = new ToastNotification(toastContent.GetXml()); note.Show(toast); } appdata.Values["LastValue"] = hfs.resident_dining.balance; } } connector.Dispose(); _defferal.Complete(); }
public void TestMailTile() { TileBinding small = new TileBinding() { Content = new TileBindingContentIconic() { Icon = new TileImageSource("Assets\\Mail.png") } }; TileBinding medium = new TileBinding() { Branding = TileBranding.Logo, Content = new TileBindingContentAdaptive() { Children = { GenerateFirstMessage(false), GenerateSpacer(), GenerateSecondMessage(false) } } }; TileBinding wideAndLarge = new TileBinding() { Branding = TileBranding.NameAndLogo, Content = new TileBindingContentAdaptive() { Children = { GenerateFirstMessage(true), GenerateSpacer(), GenerateSecondMessage(true) } } }; TileContent content = new TileContent() { Visual = new TileVisual() { TileSmall = small, TileMedium = medium, TileWide = wideAndLarge, TileLarge = wideAndLarge } }; string expectedXml = $@"<?xml version=""1.0"" encoding=""utf-8""?><tile><visual><binding template=""TileSquare71x71IconWithBadge""><image id=""1"" src=""Assets\Mail.png"" /></binding>"; // Medium expectedXml += @"<binding template=""TileMedium"" branding=""logo"">"; expectedXml += GenerateXmlGroups(false); expectedXml += "</binding>"; // Wide expectedXml += @"<binding template=""TileWide"" branding=""nameAndLogo"">"; expectedXml += GenerateXmlGroups(true); expectedXml += "</binding>"; // Large expectedXml += @"<binding template=""TileLarge"" branding=""nameAndLogo"">"; expectedXml += GenerateXmlGroups(true); expectedXml += "</binding>"; expectedXml += "</visual></tile>"; string actualXml = content.GetContent(); AssertHelper.AssertXml(expectedXml, actualXml); //Assert.AreEqual(expectedXml, actualXml); }
void Update_Tile() { if (Player != null) { TileContent content = new TileContent() { Visual = new TileVisual() { Branding = TileBranding.Name, TileSmall = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = Player.HighestScore + "", Style = TileTextStyle.Subtitle }, new TileText() { Text = Player.HighestScore+"", Style = TileTextStyle.CaptionSubtle }, }, BackgroundImage = new TileBackgroundImage() { Source = new TileImageSource("Assets/1.jpg"), Overlay = 20 }, } }, TileMedium = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = Player.HighestScore+"", Style = TileTextStyle.Subtitle }, new TileText() { Text = Player.HighestScore+"", Style = TileTextStyle.CaptionSubtle }, }, BackgroundImage = new TileBackgroundImage() { Source = new TileImageSource("Assets/1.jpg"), Overlay = 40 }, } }, TileWide = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = Player.HighestScore+"", Style = TileTextStyle.Subtitle }, new TileText() { Text = Player.HighestScore+"", Style = TileTextStyle.CaptionSubtle } }, BackgroundImage = new TileBackgroundImage() { Source = new TileImageSource("Assets/1.jpg"), Overlay = 60 }, } } } }; var notifi = new TileNotification(content.GetXml()); var updater = TileUpdateManager.CreateTileUpdaterForApplication(); updater.Update(notifi); } }
/// <summary> /// Makes sure the main app tile is an icon tile type /// </summary> public void UpdateMainTile(int unreadCount) { // Setup the main tile as iconic for small and medium TileContent content = new TileContent() { Visual = new TileVisual() { TileSmall = new TileBinding() { Content = new TileBindingContentIconic() { Icon = new TileImageSource("ms-appx:///Assets/AppAssets/IconicTiles/Iconic144.png"), } }, TileMedium = new TileBinding() { Content = new TileBindingContentIconic() { Icon = new TileImageSource("ms-appx:///Assets/AppAssets/IconicTiles/Iconic200.png"), } }, } }; // If the user is signed in we will do more for large and wide. if(m_baconMan.UserMan.IsUserSignedIn && m_baconMan.UserMan.CurrentUser != null && !String.IsNullOrWhiteSpace(m_baconMan.UserMan.CurrentUser.Name)) { content.Visual.TileWide = new TileBinding() { Content = new TileBindingContentAdaptive() { Children = { new TileText() { Text = m_baconMan.UserMan.CurrentUser.Name, Style = TileTextStyle.Caption }, new TileText() { Text = String.Format("{0:N0}", m_baconMan.UserMan.CurrentUser.CommentKarma) + " comment karma", Style = TileTextStyle.CaptionSubtle }, new TileText() { Text = String.Format("{0:N0}", m_baconMan.UserMan.CurrentUser.LinkKarma) + " link karma", Style = TileTextStyle.CaptionSubtle }, } }, }; // If we have messages replace the user name with the message string. if (unreadCount != 0) { TileText unreadCountText = new TileText() { Text = unreadCount + " Unread Inbox Message" + (unreadCount == 1 ? "" : "s"), Style = TileTextStyle.Body }; ((TileBindingContentAdaptive)content.Visual.TileWide.Content).Children[0] = unreadCountText; } // Also set the cake day if it is today DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0); DateTime userCreationTime = origin.AddSeconds(m_baconMan.UserMan.CurrentUser.CreatedUtc).ToLocalTime(); TimeSpan elapsed = DateTime.Now - userCreationTime; double fullYears = Math.Floor((elapsed.TotalDays / 365)); int daysUntil = (int)(elapsed.TotalDays - (fullYears * 365)); if(daysUntil == 0) { // Make the text TileText cakeDayText = new TileText() { Text = "Today is your cake day!", Style = TileTextStyle.Body }; ((TileBindingContentAdaptive)content.Visual.TileWide.Content).Children[0] = cakeDayText; } } // Set large to the be same as wide. content.Visual.TileLarge = content.Visual.TileWide; // Update the tile TileUpdateManager.CreateTileUpdaterForApplication().Update(new TileNotification(content.GetXml())); // Update the badge BadgeNumericNotificationContent badgeContent = new BadgeNumericNotificationContent(); badgeContent.Number = (uint)unreadCount; BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(new BadgeNotification(badgeContent.GetXml())); }
public void SendEventTileNotification(EventTileModel etm) { var content = new TileBindingContentAdaptive(); TileGroup firstGroup = new TileGroup(); TileSubgroup sgroup = new TileSubgroup(); sgroup.Weight = 22; TileImage imgOrganizer = new TileImage(); var uriImageOrganizer = etm.OrganizerImageAbsoluteUri; if (string.IsNullOrEmpty(uriImageOrganizer)) uriImageOrganizer = unknownPersonImageUri.AbsoluteUri; imgOrganizer.Source = new TileImageSource(uriImageOrganizer); sgroup.Children.Add(imgOrganizer); firstGroup.Children.Add(sgroup); sgroup = new TileSubgroup(); TileText organizerName = new TileText(); organizerName.Text = etm.OrganizerName; sgroup.Children.Add(organizerName); TileText timeEvent = new TileText(); timeEvent.Text = etm.TimeDelta; timeEvent.Style = TileTextStyle.CaptionSubtle; sgroup.Children.Add(timeEvent); TileText eventBdy = new TileText(); eventBdy.Text = etm.Subject; sgroup.Children.Add(eventBdy); firstGroup.Children.Add(sgroup); content.Children.Add(firstGroup); foreach (var driveItem in etm.Items.Take(2)) { TileGroup secondGroup = new TileGroup(); sgroup = new TileSubgroup(); TileImage imgExt = new TileImage(); imgExt.Source = new TileImageSource(driveItem.IconAbsoluteUri); sgroup.Children.Add(imgExt); sgroup.Weight = 5; secondGroup.Children.Add(sgroup); sgroup = new TileSubgroup(); TileText tt = new TileText(); tt.Text = driveItem.Title; sgroup.Children.Add(tt); secondGroup.Children.Add(sgroup); content.Children.Add(secondGroup); } TileContent tileContent = new TileContent() { Visual = new TileVisual() { TileWide = new TileBinding() { Content = content }, TileMedium = new TileBinding() { Content = content }, } }; try { var tileContentxml = tileContent.ToString(); TileNotification notification = new TileNotification(tileContent.GetXml()); TileUpdateManager.CreateTileUpdaterForApplication().Update(notification); } catch (Exception ex) { throw; } }
public void TestWeatherTile() { TileImageSource backgroundImage = new TileImageSource(BACKGROUND_IMAGE_MOSTLY_CLOUDY); int overlay = 30; TileBindingContentAdaptive smallContent = new TileBindingContentAdaptive() { TextStacking = TileTextStacking.Center, BackgroundImage = new TileBackgroundImage() { Source = backgroundImage, Overlay = overlay }, Children = { new TileText() { Text = "Mon", Style = TileTextStyle.Body, Align = TileTextAlign.Center }, new TileText() { Text = "63°", Style = TileTextStyle.Base, Align = TileTextAlign.Center } } }; TileBindingContentAdaptive mediumContent = new TileBindingContentAdaptive() { BackgroundImage = new TileBackgroundImage() { Source = backgroundImage, Overlay = overlay }, Children = { new TileGroup() { Children = { GenerateMediumSubgroup("Mon", IMAGE_MOSTLY_CLOUDY, 63, 42), GenerateMediumSubgroup("Tue", IMAGE_CLOUDY, 57, 38) } } } }; TileBindingContentAdaptive wideContent = new TileBindingContentAdaptive() { BackgroundImage = new TileBackgroundImage() { Source = backgroundImage, Overlay = overlay }, Children = { new TileGroup() { Children = { GenerateWideSubgroup("Mon", IMAGE_MOSTLY_CLOUDY, 63, 42), GenerateWideSubgroup("Tue", IMAGE_CLOUDY, 57, 38), GenerateWideSubgroup("Wed", IMAGE_SUNNY, 59, 43), GenerateWideSubgroup("Thu", IMAGE_SUNNY, 62, 42), GenerateWideSubgroup("Fri", IMAGE_SUNNY, 71, 66) } } } }; TileBindingContentAdaptive largeContent = new TileBindingContentAdaptive() { BackgroundImage = new TileBackgroundImage() { Source = backgroundImage, Overlay = overlay }, Children = { new TileGroup() { Children = { new TileSubgroup() { Weight = 30, Children = { new TileImage() { Source = new TileImageSource(IMAGE_MOSTLY_CLOUDY) } } }, new TileSubgroup() { Children = { new TileText() { Text = "Monday", Style = TileTextStyle.Base }, new TileText() { Text = "63° / 42°" }, new TileText() { Text = "20% chance of rain", Style = TileTextStyle.CaptionSubtle }, new TileText() { Text = "Winds 5 mph NE", Style = TileTextStyle.CaptionSubtle } } } } }, // For spacing new TileText(), new TileGroup() { Children = { GenerateLargeSubgroup("Tue", IMAGE_CLOUDY, 57, 38), GenerateLargeSubgroup("Wed", IMAGE_SUNNY, 59, 43), GenerateLargeSubgroup("Thu", IMAGE_SUNNY, 62, 42), GenerateLargeSubgroup("Fri", IMAGE_SUNNY, 71, 66) } } } }; TileContent content = new TileContent() { Visual = new TileVisual() { DisplayName = "Seattle", TileSmall = new TileBinding() { Content = smallContent }, TileMedium = new TileBinding() { Content = mediumContent, Branding = TileBranding.Name }, TileWide = new TileBinding() { Content = wideContent, Branding = TileBranding.NameAndLogo }, TileLarge = new TileBinding() { Content = largeContent, Branding = TileBranding.NameAndLogo } } }; string expectedPayload = $@"<?xml version=""1.0"" encoding=""utf-8""?><tile><visual displayName=""Seattle""><binding template=""TileSmall"" hint-overlay=""30"" hint-textStacking=""center"">{GenerateStringBackgroundImage()}<text hint-align=""center"" hint-style=""body"">Mon</text><text hint-align=""center"" hint-style=""base"">63°</text></binding><binding template=""TileMedium"" branding=""name"" hint-overlay=""30"">{GenerateStringBackgroundImage()}<group>"; // Medium tile subgroups expectedPayload += GenerateStringMediumSubgroup("Mon", IMAGE_MOSTLY_CLOUDY, 63, 42); expectedPayload += GenerateStringMediumSubgroup("Tue", IMAGE_CLOUDY, 57, 38); expectedPayload += "</group></binding>"; // Wide tile expectedPayload += @"<binding template=""TileWide"" branding=""nameAndLogo"" hint-overlay=""30"">"; expectedPayload += GenerateStringBackgroundImage(); expectedPayload += "<group>"; // Wide tile subgroups expectedPayload += GenerateStringWideSubgroup("Mon", IMAGE_MOSTLY_CLOUDY, 63, 42); expectedPayload += GenerateStringWideSubgroup("Tue", IMAGE_CLOUDY, 57, 38); expectedPayload += GenerateStringWideSubgroup("Wed", IMAGE_SUNNY, 59, 43); expectedPayload += GenerateStringWideSubgroup("Thu", IMAGE_SUNNY, 62, 42); expectedPayload += GenerateStringWideSubgroup("Fri", IMAGE_SUNNY, 71, 66); expectedPayload += "</group></binding>"; // Large tile expectedPayload += @"<binding template=""TileLarge"" branding=""nameAndLogo"" hint-overlay=""30"">"; expectedPayload += GenerateStringBackgroundImage(); expectedPayload += $@"<group><subgroup hint-weight=""30""><image src=""{IMAGE_MOSTLY_CLOUDY}"" /></subgroup><subgroup><text hint-style=""base"">Monday</text><text>63° / 42°</text><text hint-style=""captionSubtle"">20% chance of rain</text><text hint-style=""captionSubtle"">Winds 5 mph NE</text></subgroup></group>"; expectedPayload += "<text />"; expectedPayload += "<group>"; // Large tile subgroups expectedPayload += GenerateStringLargeSubgroup("Tue", IMAGE_CLOUDY, 57, 38); expectedPayload += GenerateStringLargeSubgroup("Wed", IMAGE_SUNNY, 59, 43); expectedPayload += GenerateStringLargeSubgroup("Thu", IMAGE_SUNNY, 62, 42); expectedPayload += GenerateStringLargeSubgroup("Fri", IMAGE_SUNNY, 71, 66); expectedPayload += "</group></binding></visual></tile>"; string actualPayload = content.GetContent(); AssertHelper.AssertXml(expectedPayload, actualPayload); //Assert.AreEqual(expectedPayload, actualPayload); }
private static TileContent GenerateNowTile(HeWeatherModel model, bool isNight, Uri uri, string glanceFull, string lockdetial, int todayIndex, CitySettingsModel currentCity, SettingsModel settings) { var ctosConverter = new ConditiontoTextConverter(); var ctoiConverter = new ConditiontoImageConverter(); var loader = new ResourceLoader(); var now = new TileContent() { Visual = new TileVisual() { LockDetailedStatus1 = currentCity.City + " " + model.NowWeather.Temprature.Actual(settings.Preferences.TemperatureParameter) + "\r\n" + lockdetial, DisplayName = currentCity.City, Branding = TileBranding.NameAndLogo, TileMedium = new TileBinding() { Content = new TileBindingContentAdaptive() { BackgroundImage = uri == null ? null : (settings.Preferences.TransparentTile ? null : new TileBackgroundImage() { Source = new TileImageSource(uri.ToString()), Overlay = 70 }), Children = { new TileText(), new TileGroup() { Children = { new TileSubgroup() { Weight = 1, }, new TileSubgroup() { Weight = 1, Children = { new TileImage() { Source = new TileImageSource("Assets/Tile/" + (string)ctoiConverter.Convert(model.NowWeather.Now.Condition,null,isNight,null)), }, } }, new TileSubgroup() { Weight = 1, } } }, new TileText() { Text = model.NowWeather.Temprature.Actual(settings.Preferences.TemperatureParameter), Style = TileTextStyle.Body, Align = TileTextAlign.Center } } }, }, TileLarge = new TileBinding() { Content = new TileBindingContentAdaptive() { BackgroundImage = uri == null ? null : (settings.Preferences.TransparentTile ? null : new TileBackgroundImage() { Source = new TileImageSource(uri.ToString()), Overlay = 70 }), Children = { new TileText(), new TileGroup() { Children = { new TileSubgroup() { Weight = 3, }, new TileSubgroup() { Weight = 2, Children = { new TileImage() { Source = new TileImageSource("Assets/Tile/" + (string)ctoiConverter.Convert(model.NowWeather.Now.Condition,null,isNight,null)), }, } }, new TileSubgroup() { Weight = 3, } } }, new TileText() { Text = model.NowWeather.Temprature.Actual(settings.Preferences.TemperatureParameter), Style = TileTextStyle.Subheader, Align = TileTextAlign.Center }, new TileText() { Text = glanceFull, Align = TileTextAlign.Center, Style = TileTextStyle.CaptionSubtle, Wrap = true } } } }, TileSmall = new TileBinding() { Content = new TileBindingContentAdaptive() { TextStacking = TileTextStacking.Center, Children = { new TileText() { Text = model.NowWeather.Temprature.Actual(settings.Preferences.TemperatureParameter), Align = TileTextAlign.Center, Style = TileTextStyle.Body } } } }, TileWide = new TileBinding() { DisplayName = currentCity.City, Branding = TileBranding.NameAndLogo, Content = new TileBindingContentAdaptive() { BackgroundImage = uri == null ? null : (settings.Preferences.TransparentTile ? null : new TileBackgroundImage() { Source = new TileImageSource(uri.ToString()), Overlay = 70 }), Children = { new TileGroup() { Children= { new TileSubgroup() { Weight = 1, Children = { new TileText() { Text = model.DailyForecast[todayIndex+1].Date.ToString("ddd"), Align = TileTextAlign.Center, Style = TileTextStyle.Caption }, new TileImage() { Source = new TileImageSource("Assets/Tile/" + (string)ctoiConverter.Convert(model.DailyForecast[todayIndex+1].Condition.DayCond,null,isNight,null)) }, new TileText() { Align = TileTextAlign.Center, Style = TileTextStyle.Caption }, } }, new TileSubgroup() { Weight = 2, TextStacking = TileTextStacking.Center, Children = { new TileText() { Style = TileTextStyle.CaptionSubtle, Align = TileTextAlign.Center }, new TileText() { Text = (string)ctosConverter.Convert(model.DailyForecast[todayIndex+1].Condition.DayCond,null,null,null), Align = TileTextAlign.Center, Style = TileTextStyle.Caption }, new TileText() { Text = model.DailyForecast[todayIndex+1].HighTemp.Actual(settings.Preferences.TemperatureParameter).ToString(), Align = TileTextAlign.Center, Style = TileTextStyle.Caption }, new TileText() { Text = model.DailyForecast[todayIndex+1].LowTemp.Actual(settings.Preferences.TemperatureParameter).ToString(), Style = TileTextStyle.CaptionSubtle, Align = TileTextAlign.Center } } }, new TileSubgroup() { Weight = 1, Children = { new TileText() { Align = TileTextAlign.Center, Style = TileTextStyle.CaptionSubtle }, new TileText() { Text = loader.GetString("ScaleText"), Align = TileTextAlign.Center, Style = TileTextStyle.CaptionSubtle }, new TileText() { Align = TileTextAlign.Center, Style = TileTextStyle.CaptionSubtle }, new TileText() { Text = loader.GetString("HumText"), Align = TileTextAlign.Center, Style = TileTextStyle.CaptionSubtle }, } }, new TileSubgroup() { Weight = 2, TextStacking = TileTextStacking.Center, Children = { new TileText() { Style = TileTextStyle.CaptionSubtle, Align = TileTextAlign.Left }, new TileText() { Text = model.DailyForecast[todayIndex+1].Wind.Speed.Actual(settings.Preferences.SpeedParameter) + model.NowWeather.Wind.Speed.DanWei(settings.Preferences.SpeedParameter), Align = TileTextAlign.Left, Style = TileTextStyle.Caption }, new TileText() { Style = TileTextStyle.CaptionSubtle, Align = TileTextAlign.Left }, new TileText() { Text = model.DailyForecast[todayIndex+1].Humidity.ToString() + "%", Align = TileTextAlign.Left, Style = TileTextStyle.Caption }, } }, } } }, } }, } }; return now; }
public void InstantUpdateSecondary(TileContent content) { }