예제 #1
0
 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);
     }
 }
예제 #2
0
        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(" ", "");
        }
예제 #3
0
        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;
        }