private void OnSelectionChangedLockscreenBackgroundTemplatePicker(object sender, SelectionChangedEventArgs e) { if (e.AddedItems.Count > 0 && e.RemovedItems.Count > 0) { LockscreenTemplateItem templateItem = e.AddedItems[0] as LockscreenTemplateItem; SettingHelper.Set(Constants.LOCKSCREEN_BACKGROUND_TEMPLATE, templateItem, false); } }
private void OnLoadedLsIBTemplate(object sender, RoutedEventArgs e) { Grid grid = sender as Grid; LockscreenTemplateItem item = (grid.Parent as FrameworkElement).DataContext as LockscreenTemplateItem; //이미지를 폰의 비율에 맞게 변경 Image bgImg = grid.Children[0] as Image; double ratio = bgImg.RenderSize.Width / ResolutionHelper.CurrentResolution.Width; bgImg.Height = ratio * ResolutionHelper.CurrentResolution.Height; ((grid.Parent as Grid).Children[0] as TextBlock).Width = bgImg.Width; if (item.Id < (LockscreenBackgroundTemplatePicker.ItemsSource as List <LockscreenTemplateItem>).Count - 1) { Thickness margin = LockscreenHelper.GetDisplayAreaMargin(bgImg.RenderSize); Size size = LockscreenHelper.GetDisplayAreaSize(bgImg.RenderSize); margin.Right = margin.Left; Grid panel = grid.Children[1] as Grid; panel.VerticalAlignment = System.Windows.VerticalAlignment.Top; panel.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; panel.Margin = margin; panel.Width = size.Width; panel.Height = (panel.Width - panel.Margin.Left) / 2; //추가할 이미지의 가로 폭 double imageWidth = panel.Height; LockscreenItemInfo[] lsii = item.LockscreenItemInfos; bool useSeparation = (bool)SettingHelper.Get(Constants.LOCKSCREEN_BACKGROUND_USE_SEPARATION); if (lsii.Length > 1 && !useSeparation) { Canvas backPanel = new Canvas() { Background = new SolidColorBrush((SettingHelper.Get(Constants.LOCKSCREEN_BACKGROUND_COLOR) as ColorItem).Color), Opacity = (double)(int)SettingHelper.Get(Constants.LOCKSCREEN_BACKGROUND_OPACITY) / 100, Width = panel.Width, Height = panel.Height }; panel.Children.Add(backPanel); } for (int i = 0; i < lsii.Length; i++) { Thickness innerMargin = new Thickness(5); if (lsii[i].RowSpan == 1) { switch (lsii[i].Row) { case 0: innerMargin.Bottom = 2.5; break; case 1: innerMargin.Bottom = 2.5; break; case 2: innerMargin.Top = 0; break; } } if (lsii[i].RowSpan == 2) { if (lsii[i].Row == 1) { innerMargin.Top = 2.5; innerMargin.Bottom = 5; } } if (lsii[i].ColSpan == 2) { panel.Width = imageWidth; } //템플렛 이미지를 생성하여 추가 Grid imgGrid = new Grid() { Margin = innerMargin }; Border imgBorder = new Border() { Child = new Image() { Source = new BitmapImage(new Uri(string.Format("/Images/lockscreen/template.{0}.png", lsii[i].LockscreenItem.ToString().ToLower()), UriKind.Relative)), Width = imageWidth - innerMargin.Left - innerMargin.Right } }; Grid.SetRowSpan(imgGrid, lsii[i].RowSpan); Grid.SetColumnSpan(imgGrid, lsii[i].ColSpan); Grid.SetRow(imgGrid, lsii[i].Row); Grid.SetColumn(imgGrid, lsii[i].Column); imgGrid.Children.Add(imgBorder); panel.Children.Add(imgGrid); //분리선 사용인 경우 각각의 아이템에 배경을 입힌다. if (lsii.Length == 1 || useSeparation) { if (lsii.Length == 1) { imgGrid.Margin = new Thickness(0); } imgGrid.Children.Insert(0, new Canvas() { Background = new SolidColorBrush((SettingHelper.Get(Constants.LOCKSCREEN_BACKGROUND_COLOR) as ColorItem).Color), Opacity = (double)(int)SettingHelper.Get(Constants.LOCKSCREEN_BACKGROUND_OPACITY) / 100, Width = imgGrid.Width, Height = imgGrid.Height }); } } } DateTime now = DateTime.Now; string dt = now.ToShortTimeString(); (grid.Children[2] as TextBlock).Text = now.ToString("h:mm"); (grid.Children[3] as TextBlock).Text = now.ToString("dddd"); (grid.Children[4] as TextBlock).Text = now.ToString("m").Replace(" ", ""); }
private void InitializeLockscreenSetting() { LockscreenItemInfo[][] lockscreenItemInfos = new LockscreenItemInfo[][] { new LockscreenItemInfo[] { new LockscreenItemInfo { LockscreenItem = LiveItems.Weather, Column = 0, Row = 0, ColSpan = 1, RowSpan = 3 }, new LockscreenItemInfo { LockscreenItem = LiveItems.Calendar, Column = 1, Row = 0, ColSpan = 1, RowSpan = 3 } }, new LockscreenItemInfo[] { new LockscreenItemInfo { LockscreenItem = LiveItems.Calendar, Column = 0, Row = 0, ColSpan = 1, RowSpan = 3 }, new LockscreenItemInfo { LockscreenItem = LiveItems.Weather, Column = 1, Row = 0, ColSpan = 1, RowSpan = 3 }, }, new LockscreenItemInfo[] { new LockscreenItemInfo { LockscreenItem = LiveItems.NoForecast, Column = 0, Row = 0, ColSpan = 1, RowSpan = 2 }, new LockscreenItemInfo { LockscreenItem = LiveItems.Battery, Column = 0, Row = 2, ColSpan = 1, RowSpan = 1 }, new LockscreenItemInfo { LockscreenItem = LiveItems.Calendar, Column = 1, Row = 0, ColSpan = 1, RowSpan = 3 } }, new LockscreenItemInfo[] { new LockscreenItemInfo { LockscreenItem = LiveItems.Battery, Column = 0, Row = 0, ColSpan = 1, RowSpan = 1 }, new LockscreenItemInfo { LockscreenItem = LiveItems.NoForecast, Column = 0, Row = 1, ColSpan = 1, RowSpan = 2 }, new LockscreenItemInfo { LockscreenItem = LiveItems.Calendar, Column = 1, Row = 0, ColSpan = 1, RowSpan = 3 } }, new LockscreenItemInfo[] { new LockscreenItemInfo { LockscreenItem = LiveItems.Calendar, Column = 0, Row = 0, ColSpan = 1, RowSpan = 3 }, new LockscreenItemInfo { LockscreenItem = LiveItems.NoForecast, Column = 1, Row = 0, ColSpan = 1, RowSpan = 2 }, new LockscreenItemInfo { LockscreenItem = LiveItems.Battery, Column = 1, Row = 2, ColSpan = 1, RowSpan = 1 } }, new LockscreenItemInfo[] { new LockscreenItemInfo { LockscreenItem = LiveItems.Calendar, Column = 0, Row = 0, ColSpan = 1, RowSpan = 3 }, new LockscreenItemInfo { LockscreenItem = LiveItems.Battery, Column = 1, Row = 0, ColSpan = 1, RowSpan = 1 }, new LockscreenItemInfo { LockscreenItem = LiveItems.NoForecast, Column = 1, Row = 1, ColSpan = 1, RowSpan = 2 } }, new LockscreenItemInfo[] { new LockscreenItemInfo { LockscreenItem = LiveItems.Weather, Column = 0, Row = 0, ColSpan = 2, RowSpan = 3 }, }, new LockscreenItemInfo[] { new LockscreenItemInfo { LockscreenItem = LiveItems.NoForecast, Column = 0, Row = 0, ColSpan = 2, RowSpan = 2 }, }, new LockscreenItemInfo[] { new LockscreenItemInfo { LockscreenItem = LiveItems.Calendar, Column = 0, Row = 0, ColSpan = 2, RowSpan = 3 }, }, new LockscreenItemInfo[] { } }; LockscreenTemplateItem templateItem = SettingHelper.Get(Constants.LOCKSCREEN_BACKGROUND_TEMPLATE) as LockscreenTemplateItem; List <LockscreenTemplateItem> templateList = new List <LockscreenTemplateItem>(); for (byte i = 0; i < lockscreenItemInfos.Length; i++) { templateList.Add(new LockscreenTemplateItem() { Id = i, LockscreenItemInfos = lockscreenItemInfos[i] }); if (i == templateItem.Id) { templateItem = templateList[i]; } } LockscreenBackgroundTemplatePicker.ItemsSource = templateList; LockscreenBackgroundTemplatePicker.SelectedItem = templateItem; LockscreenBackgroundTemplatePicker.SelectionChanged += OnSelectionChangedLockscreenBackgroundTemplatePicker; LockscreenBackgroundColortPicker.ItemsSource = items; LockscreenBackgroundColortPicker.SelectedItem = FindSelectedColorItem(items, Constants.LOCKSCREEN_BACKGROUND_COLOR); LockscreenBackgroundColortPicker.SelectionChanged += OnSelectionChangedColortPicker; LockscreenBackgroundOpacity.ValueChanged += OnValueChangeLockscreenBackgroundOpacity; LockscreenBackgroundOpacity.Value = (int)SettingHelper.Get(Constants.LOCKSCREEN_BACKGROUND_OPACITY); LockscreenBackgroundOpacityHeader.Text = string.Format(AppResources.LockscreenItemBackgroundOpacity, (int)LockscreenBackgroundOpacity.Value); UseLockscreenBackgroundItemSeparation.IsChecked = (bool)SettingHelper.Get(Constants.LOCKSCREEN_BACKGROUND_USE_SEPARATION); UseLockscreenBackgroundItemSeparation.Checked += OnCheckedUseItem; UseLockscreenBackgroundItemSeparation.Unchecked += OnUncheckedUseItem; //글자 굵기 피커 데이터 설정 FontWeight[] fontWeights = new FontWeight[] { FontWeights.ExtraBlack, FontWeights.Black, FontWeights.ExtraBold, FontWeights.Bold, FontWeights.SemiBold, FontWeights.Medium, }; List <PickerItem> fontWeightList = new List <PickerItem>(); Object selectItem = null; foreach (FontWeight fw in fontWeights) { PickerItem item = new PickerItem() { Key = fw.ToString(), Name = fw.ToString() }; fontWeightList.Add(item); if ((string)item.Key == SettingHelper.GetString(Constants.LOCKSCREEN_FONT_WEIGHT)) { selectItem = item; } } LockscreenFontWeightPicker.ItemsSource = fontWeightList; LockscreenFontWeightPicker.SelectedItem = selectItem == null?fontWeightList.FirstOrDefault(x => x.Name == FontWeights.Bold.ToString()) : selectItem; LockscreenFontWeightPicker.SelectionChanged += LockscreenFontWeightPicker_SelectionChanged; List <PickerItem> intervalList = new List <PickerItem>(); intervalList.Add(new PickerItem() { Key = 60, Name = 1 + AppResources.Hour }); intervalList.Add(new PickerItem() { Key = 120, Name = 2 + AppResources.Hours }); intervalList.Add(new PickerItem() { Key = 180, Name = 3 + AppResources.Hours }); intervalList.Add(new PickerItem() { Key = 360, Name = 6 + AppResources.Hours }); intervalList.Add(new PickerItem() { Key = 720, Name = 12 + AppResources.Hours }); intervalList.Add(new PickerItem() { Key = 1440, Name = 1 + AppResources.Day }); intervalList.Add(new PickerItem() { Key = 2880, Name = 2 + AppResources.Days }); intervalList.Add(new PickerItem() { Key = 4320, Name = 3 + AppResources.Days }); intervalList.Add(new PickerItem() { Key = 10080, Name = 1 + AppResources.Week }); int interval = scheduleSettings.LockscreenUpdateInterval; for (int i = 0; i < intervalList.Count; i++) { if ((int)intervalList[i].Key == interval) { interval = i; break; } } UpdateIntervalLockscreenPicker.ItemsSource = intervalList; UpdateIntervalLockscreenPicker.SelectedIndex = interval; UpdateIntervalLockscreenPicker.SelectionChanged += OnSelectionChangedUpdateInterval; }