private void DrawProgressBar(SkinButtonState state) { var progressBar = (SkinProgressBar)SkinElement; var art = new SkinArtImage(); switch (state) { case SkinButtonState.Normal: art = progressBar.Art.Images.Any(t => t.Type == "UnfilledImage") ? progressBar.Art.Images.First(t => t.Type == "UnfilledImage") : new SkinArtImage(); break; case SkinButtonState.Focused: art = progressBar.Art.Images.Any(t => t.Type == "FilledImage" && !string.IsNullOrEmpty(t.Type)) ? progressBar.Art.Images.First(t => t.Type == "FilledImage") : (progressBar.Art.Images.Any(t => t.Type == "UnfilledImage") ? progressBar.Art.Images.First(t => t.Type == "UnfilledImage") : new SkinArtImage()); break; } var img = (BitmapImage)Core.GetImageSourceFromFileName(SkinController.GetFullPath(art.Path)); //+ Формирование шаблона контрола var xamlGrid = new FrameworkElementFactory(typeof(Grid)); var xamlBorder = new FrameworkElementFactory(typeof(Border)); var xamlImage = new FrameworkElementFactory(typeof(Image)); xamlImage.SetValue(WidthProperty, (double)img.PixelWidth); xamlImage.SetValue(HeightProperty, (double)img.PixelHeight); xamlImage.SetValue(Image.SourceProperty, img); xamlGrid.AppendChild(xamlImage); xamlBorder.AppendChild(xamlGrid); Template = new ControlTemplate { VisualTree = xamlBorder }; //- Формирование шаблона контрола }
private void DrawSlider(SkinButtonState state) { var slider = (SkinSlider)SkinElement; var art = new SkinArtImage(); var art2 = new SkinArtImage(); switch (state) { case SkinButtonState.Normal: art = slider.Art.Images.Any(t => t.Type == "BackgroundImage") ? slider.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage(); art2 = slider.Art.Images.Any(t => t.Type == "FocusedImage") ? slider.Art.Images.First(t => t.Type == "FocusedImage") : new SkinArtImage(); break; case SkinButtonState.Clicked: art = slider.Art.Images.Any(t => t.Type == "BackgroundImage") ? slider.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage(); art2 = slider.Art.Images.Any(t => t.Type == "FocusedImage") ? slider.Art.Images.First(t => t.Type == "FocusedImage") : new SkinArtImage(); break; case SkinButtonState.Focused: art = slider.Art.Images.Any(t => t.Type == "BackgroundImage") ? slider.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage(); art2 = slider.Art.Images.Any(t => t.Type == "FocusedImage") ? slider.Art.Images.First(t => t.Type == "FocusedImage") : new SkinArtImage(); break; } var img = (BitmapImage)Core.GetImageSourceFromFileName(SkinController.GetFullPath(art.Path)); var img2 = (BitmapImage)Core.GetImageSourceFromFileName(SkinController.GetFullPath(art2.Path)); //+ Формирование шаблона контрола var xamlGrid = new FrameworkElementFactory(typeof(Grid)); var xamlBorder = new FrameworkElementFactory(typeof(Border)); var xamlImage = new FrameworkElementFactory(typeof(Image)); xamlImage.SetValue(WidthProperty, (double)img.PixelWidth); xamlImage.SetValue(HeightProperty, (double)img.PixelHeight); xamlImage.SetValue(Image.SourceProperty, img); xamlGrid.AppendChild(xamlImage); xamlBorder.AppendChild(xamlGrid); var xamlImage2 = new FrameworkElementFactory(typeof(Image)); xamlImage2.SetValue(Image.SourceProperty, img2); xamlImage2.SetValue(HorizontalAlignmentProperty, state == SkinButtonState.Clicked ? HorizontalAlignment.Right : HorizontalAlignment.Center); xamlImage2.SetValue(WidthProperty, (double)img2.PixelWidth); xamlGrid.AppendChild(xamlImage2); Template = new ControlTemplate { VisualTree = xamlBorder }; //- Формирование шаблона контрола }
private void DrawBrowser(SkinButtonState state) { var browser = (SkinBrowser) SkinElement; var pos = SkinController.SelectedWindow.ColorPositions.Any(t => t.MapColor == Core.MapColor2Color(browser.MapColor)) ? SkinController.SelectedWindow.ColorPositions.First(t => t.MapColor == Core.MapColor2Color(browser.MapColor)) : new ColorPosition(); //+ Формирование шаблона контрола var xamlGrid = new FrameworkElementFactory(typeof(Grid)); var xamlBorder = new FrameworkElementFactory(typeof(Border)); xamlBorder.SetValue(Border.BorderThicknessProperty, browser.NoBorder ? new Thickness(0) : new Thickness(2)); var xamlWebBrowser = new FrameworkElementFactory(typeof(WebBrowserBindable)); xamlWebBrowser.SetValue(WebBrowserBindable.NavigationUrlProperty, browser.InitUrl); xamlWebBrowser.SetValue(WidthProperty, pos.Width); xamlWebBrowser.SetValue(HeightProperty, pos.Height); xamlGrid.AppendChild(xamlWebBrowser); xamlBorder.AppendChild(xamlGrid); Template = new ControlTemplate { VisualTree = xamlBorder }; //- Формирование шаблона контрола }
private void DrawBrowser(SkinButtonState state) { var browser = (SkinBrowser)SkinElement; var pos = SkinController.SelectedWindow.ColorPositions.Any(t => t.MapColor == Core.MapColor2Color(browser.MapColor)) ? SkinController.SelectedWindow.ColorPositions.First(t => t.MapColor == Core.MapColor2Color(browser.MapColor)) : new ColorPosition(); //+ Формирование шаблона контрола var xamlGrid = new FrameworkElementFactory(typeof(Grid)); var xamlBorder = new FrameworkElementFactory(typeof(Border)); xamlBorder.SetValue(Border.BorderThicknessProperty, browser.NoBorder ? new Thickness(0) : new Thickness(2)); var xamlWebBrowser = new FrameworkElementFactory(typeof(WebBrowserBindable)); xamlWebBrowser.SetValue(WebBrowserBindable.NavigationUrlProperty, browser.InitUrl); xamlWebBrowser.SetValue(WidthProperty, pos.Width); xamlWebBrowser.SetValue(HeightProperty, pos.Height); xamlGrid.AppendChild(xamlWebBrowser); xamlBorder.AppendChild(xamlGrid); Template = new ControlTemplate { VisualTree = xamlBorder }; //- Формирование шаблона контрола }
private void DrawSlider(SkinButtonState state) { var slider = (SkinSlider) SkinElement; var art = new SkinArtImage(); var art2 = new SkinArtImage(); switch (state) { case SkinButtonState.Normal: art = slider.Art.Images.Any(t => t.Type == "BackgroundImage") ? slider.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage(); art2 = slider.Art.Images.Any(t => t.Type == "FocusedImage") ? slider.Art.Images.First(t => t.Type == "FocusedImage") : new SkinArtImage(); break; case SkinButtonState.Clicked: art = slider.Art.Images.Any(t => t.Type == "BackgroundImage") ? slider.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage(); art2 = slider.Art.Images.Any(t => t.Type == "FocusedImage") ? slider.Art.Images.First(t => t.Type == "FocusedImage") : new SkinArtImage(); break; case SkinButtonState.Focused: art = slider.Art.Images.Any(t => t.Type == "BackgroundImage") ? slider.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage(); art2 = slider.Art.Images.Any(t => t.Type == "FocusedImage") ? slider.Art.Images.First(t => t.Type == "FocusedImage") : new SkinArtImage(); break; } var img = (BitmapImage) Core.GetImageSourceFromFileName(SkinController.GetFullPath(art.Path)); var img2 = (BitmapImage) Core.GetImageSourceFromFileName(SkinController.GetFullPath(art2.Path)); //+ Формирование шаблона контрола var xamlGrid = new FrameworkElementFactory(typeof(Grid)); var xamlBorder = new FrameworkElementFactory(typeof(Border)); var xamlImage = new FrameworkElementFactory(typeof(Image)); xamlImage.SetValue(WidthProperty, (double) img.PixelWidth); xamlImage.SetValue(HeightProperty, (double) img.PixelHeight); xamlImage.SetValue(Image.SourceProperty, img); xamlGrid.AppendChild(xamlImage); xamlBorder.AppendChild(xamlGrid); var xamlImage2 = new FrameworkElementFactory(typeof(Image)); xamlImage2.SetValue(Image.SourceProperty, img2); xamlImage2.SetValue(HorizontalAlignmentProperty, state == SkinButtonState.Clicked ? HorizontalAlignment.Right : HorizontalAlignment.Center); xamlImage2.SetValue(WidthProperty, (double) img2.PixelWidth); xamlGrid.AppendChild(xamlImage2); Template = new ControlTemplate { VisualTree = xamlBorder }; //- Формирование шаблона контрола }
private void DrawProgressBar(SkinButtonState state) { var progressBar = (SkinProgressBar) SkinElement; var art = new SkinArtImage(); switch (state) { case SkinButtonState.Normal: art = progressBar.Art.Images.Any(t => t.Type == "UnfilledImage") ? progressBar.Art.Images.First(t => t.Type == "UnfilledImage") : new SkinArtImage(); break; case SkinButtonState.Focused: art = progressBar.Art.Images.Any(t => t.Type == "FilledImage" && !string.IsNullOrEmpty(t.Type)) ? progressBar.Art.Images.First(t => t.Type == "FilledImage") : (progressBar.Art.Images.Any(t => t.Type == "UnfilledImage") ? progressBar.Art.Images.First(t => t.Type == "UnfilledImage") : new SkinArtImage()); break; } var img = (BitmapImage) Core.GetImageSourceFromFileName(SkinController.GetFullPath(art.Path)); //+ Формирование шаблона контрола var xamlGrid = new FrameworkElementFactory(typeof(Grid)); var xamlBorder = new FrameworkElementFactory(typeof(Border)); var xamlImage = new FrameworkElementFactory(typeof(Image)); xamlImage.SetValue(WidthProperty, (double) img.PixelWidth); xamlImage.SetValue(HeightProperty, (double) img.PixelHeight); xamlImage.SetValue(Image.SourceProperty, img); xamlGrid.AppendChild(xamlImage); xamlBorder.AppendChild(xamlGrid); Template = new ControlTemplate { VisualTree = xamlBorder }; //- Формирование шаблона контрола }
private void DrawComboBox(SkinButtonState state) { var comboBox = (SkinComboBox) SkinElement; var art = new SkinArtImage(); switch (state) { case SkinButtonState.Normal: art = comboBox.Art.Images.Any(t => t.Type == "BackgroundImage") ? comboBox.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage(); break; case SkinButtonState.Clicked: if (comboBox.Art.Images.Any(t => t.Type == "SelectedImage" && !string.IsNullOrEmpty(t.Type))) { art = comboBox.Art.Images.First(t => t.Type == "SelectedImage"); } else { art = comboBox.Art.Images.Any(t => t.Type == "ClickedImage" && !string.IsNullOrEmpty(t.Type)) ? comboBox.Art.Images.First(t => t.Type == "ClickedImage") : (comboBox.Art.Images.Any(t => t.Type == "BackgroundImage") ? comboBox.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage()); } break; case SkinButtonState.Focused: art = comboBox.Art.Images.Any(t => t.Type == "HoverImage" && !string.IsNullOrEmpty(t.Type)) ? comboBox.Art.Images.First(t => t.Type == "HoverImage") : (comboBox.Art.Images.Any(t => t.Type == "BackgroundImage") ? comboBox.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage()); break; } var img = (BitmapImage) Core.GetImageSourceFromFileName(SkinController.GetFullPath(art.Path)); //+ Формирование шаблона контрола var xamlGrid = new FrameworkElementFactory(typeof(Grid)); var xamlBorder = new FrameworkElementFactory(typeof(Border)); var xamlImage = new FrameworkElementFactory(typeof(Image)); xamlImage.SetValue(WidthProperty, (double) img.PixelWidth); xamlImage.SetValue(HeightProperty, (double) img.PixelHeight); xamlImage.SetValue(Image.SourceProperty, img); xamlGrid.AppendChild(xamlImage); if (!string.IsNullOrEmpty(comboBox.Text)) { var xamlTextBlock = new FrameworkElementFactory(typeof(TextBlock)); xamlTextBlock.SetValue(TextBlock.TextProperty, comboBox.Text); xamlTextBlock.SetValue(HorizontalAlignmentProperty, HorizontalAlignment.Center); xamlTextBlock.SetValue(VerticalAlignmentProperty, VerticalAlignment.Center); if (SkinController.SkinApp.Styles.Any(t => t.Name == comboBox.Style)) { var textStyle = SkinController.SkinApp.Styles.First(t => t.Name == comboBox.Style); xamlTextBlock.SetValue(TextBlock.FontSizeProperty, textStyle.Height); if (textStyle.Weight > 0) xamlTextBlock.SetValue(TextBlock.FontWeightProperty, textStyle.Weight); xamlTextBlock.SetValue(TextBlock.FontFamilyProperty, new FontFamily(textStyle.Face)); xamlTextBlock.SetValue(TextBlock.ForegroundProperty, Core.GetColorBrushFromString(textStyle.Default)); } xamlGrid.AppendChild(xamlTextBlock); } xamlBorder.AppendChild(xamlGrid); Template = new ControlTemplate { VisualTree = xamlBorder }; //- Формирование шаблона контрола }
private void DrawButton(SkinButtonState state) { var button = (SkinButton) SkinElement; var art = new SkinArtImage(); switch (state) { case SkinButtonState.Normal: art = button.Art.Images.Any(t => t.Type == "BackgroundImage") ? button.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage(); break; case SkinButtonState.Clicked: if (button.Art.Images.Any(t => t.Type == "SelectedImage" && !string.IsNullOrEmpty(t.Type))) { art = button.Art.Images.First(t => t.Type == "SelectedImage"); } else { art = button.Art.Images.Any(t => t.Type == "ClickedImage" && !string.IsNullOrEmpty(t.Type)) ? button.Art.Images.First(t => t.Type == "ClickedImage") : (button.Art.Images.Any(t => t.Type == "BackgroundImage") ? button.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage()); } break; case SkinButtonState.Focused: art = button.Art.Images.Any(t => t.Type == "HoverImage" && !string.IsNullOrEmpty(t.Type)) ? button.Art.Images.First(t => t.Type == "HoverImage") : (button.Art.Images.Any(t => t.Type == "BackgroundImage") ? button.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage()); break; } var img = (BitmapImage) Core.GetImageSourceFromFileName(SkinController.GetFullPath(art.Path)); //+ Формирование шаблона контрола var xamlGrid = new FrameworkElementFactory(typeof(Grid)); var xamlImage = new FrameworkElementFactory(typeof(Image)); xamlImage.SetValue(WidthProperty, (double) img.PixelWidth); xamlImage.SetValue(HeightProperty, (double) img.PixelHeight); xamlImage.SetValue(Image.SourceProperty, img); xamlGrid.AppendChild(xamlImage); if (!string.IsNullOrEmpty(button.Text)) { var xamlTextBlock = new FrameworkElementFactory(typeof(TextBlock)); xamlTextBlock.SetValue(TextBlock.TextProperty, string.IsNullOrEmpty(button.Text) ? button.Name : button.Text); var hAlign = HorizontalAlignment.Center; switch (button.Align) { case SkinTextAligh.left: hAlign = HorizontalAlignment.Left; break; case SkinTextAligh.right: hAlign = HorizontalAlignment.Right; break; } xamlTextBlock.SetValue(HorizontalAlignmentProperty, hAlign); xamlTextBlock.SetValue(VerticalAlignmentProperty, VerticalAlignment.Center); if (SkinController.SkinApp.Styles.Any(t=>t.Name == button.Style)) { var textStyle = SkinController.SkinApp.Styles.First(t => t.Name == button.Style); xamlTextBlock.SetValue(TextBlock.FontSizeProperty, textStyle.Height); if (textStyle.Weight > 0) xamlTextBlock.SetValue(TextBlock.FontWeightProperty, FontWeight.FromOpenTypeWeight((int) textStyle.Weight)); if (Fonts.SystemFontFamilies.Any(t => t.GetTypefaces().Any(f=>f.FaceNames.Any(fn=>fn.Key.ToString().ToLower() == textStyle.Face.ToLower())))) xamlTextBlock.SetValue(TextBlock.FontFamilyProperty, Fonts.SystemFontFamilies.First(t => t.GetTypefaces().Any(f => f.FaceNames.Any(fn => fn.Key.ToString().ToLower() == textStyle.Face.ToLower())))); xamlTextBlock.SetValue(TextBlock.ForegroundProperty, Core.GetColorBrushFromString(textStyle.Default)); } xamlGrid.AppendChild(xamlTextBlock); } Template = new ControlTemplate { VisualTree = xamlGrid }; //- Формирование шаблона контрола }
private void DrawButton(SkinButtonState state) { var button = (SkinButton)SkinElement; var art = new SkinArtImage(); switch (state) { case SkinButtonState.Normal: art = button.Art.Images.Any(t => t.Type == "BackgroundImage") ? button.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage(); break; case SkinButtonState.Clicked: if (button.Art.Images.Any(t => t.Type == "SelectedImage" && !string.IsNullOrEmpty(t.Type))) { art = button.Art.Images.First(t => t.Type == "SelectedImage"); } else { art = button.Art.Images.Any(t => t.Type == "ClickedImage" && !string.IsNullOrEmpty(t.Type)) ? button.Art.Images.First(t => t.Type == "ClickedImage") : (button.Art.Images.Any(t => t.Type == "BackgroundImage") ? button.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage()); } break; case SkinButtonState.Focused: art = button.Art.Images.Any(t => t.Type == "HoverImage" && !string.IsNullOrEmpty(t.Type)) ? button.Art.Images.First(t => t.Type == "HoverImage") : (button.Art.Images.Any(t => t.Type == "BackgroundImage") ? button.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage()); break; } var img = (BitmapImage)Core.GetImageSourceFromFileName(SkinController.GetFullPath(art.Path)); //+ Формирование шаблона контрола var xamlGrid = new FrameworkElementFactory(typeof(Grid)); var xamlImage = new FrameworkElementFactory(typeof(Image)); xamlImage.SetValue(WidthProperty, (double)img.PixelWidth); xamlImage.SetValue(HeightProperty, (double)img.PixelHeight); xamlImage.SetValue(Image.SourceProperty, img); xamlGrid.AppendChild(xamlImage); if (!string.IsNullOrEmpty(button.Text)) { var xamlTextBlock = new FrameworkElementFactory(typeof(TextBlock)); xamlTextBlock.SetValue(TextBlock.TextProperty, string.IsNullOrEmpty(button.Text) ? button.Name : button.Text); var hAlign = HorizontalAlignment.Center; switch (button.Align) { case SkinTextAligh.left: hAlign = HorizontalAlignment.Left; break; case SkinTextAligh.right: hAlign = HorizontalAlignment.Right; break; } xamlTextBlock.SetValue(HorizontalAlignmentProperty, hAlign); xamlTextBlock.SetValue(VerticalAlignmentProperty, VerticalAlignment.Center); if (SkinController.SkinApp.Styles.Any(t => t.Name == button.Style)) { var textStyle = SkinController.SkinApp.Styles.First(t => t.Name == button.Style); xamlTextBlock.SetValue(TextBlock.FontSizeProperty, textStyle.Height); if (textStyle.Weight > 0) { xamlTextBlock.SetValue(TextBlock.FontWeightProperty, FontWeight.FromOpenTypeWeight((int)textStyle.Weight)); } if (Fonts.SystemFontFamilies.Any(t => t.GetTypefaces().Any(f => f.FaceNames.Any(fn => fn.Key.ToString().ToLower() == textStyle.Face.ToLower())))) { xamlTextBlock.SetValue(TextBlock.FontFamilyProperty, Fonts.SystemFontFamilies.First(t => t.GetTypefaces().Any(f => f.FaceNames.Any(fn => fn.Key.ToString().ToLower() == textStyle.Face.ToLower())))); } xamlTextBlock.SetValue(TextBlock.ForegroundProperty, Core.GetColorBrushFromString(textStyle.Default)); } xamlGrid.AppendChild(xamlTextBlock); } Template = new ControlTemplate { VisualTree = xamlGrid }; //- Формирование шаблона контрола }
private void DrawComboBox(SkinButtonState state) { var comboBox = (SkinComboBox)SkinElement; var art = new SkinArtImage(); switch (state) { case SkinButtonState.Normal: art = comboBox.Art.Images.Any(t => t.Type == "BackgroundImage") ? comboBox.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage(); break; case SkinButtonState.Clicked: if (comboBox.Art.Images.Any(t => t.Type == "SelectedImage" && !string.IsNullOrEmpty(t.Type))) { art = comboBox.Art.Images.First(t => t.Type == "SelectedImage"); } else { art = comboBox.Art.Images.Any(t => t.Type == "ClickedImage" && !string.IsNullOrEmpty(t.Type)) ? comboBox.Art.Images.First(t => t.Type == "ClickedImage") : (comboBox.Art.Images.Any(t => t.Type == "BackgroundImage") ? comboBox.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage()); } break; case SkinButtonState.Focused: art = comboBox.Art.Images.Any(t => t.Type == "HoverImage" && !string.IsNullOrEmpty(t.Type)) ? comboBox.Art.Images.First(t => t.Type == "HoverImage") : (comboBox.Art.Images.Any(t => t.Type == "BackgroundImage") ? comboBox.Art.Images.First(t => t.Type == "BackgroundImage") : new SkinArtImage()); break; } var img = (BitmapImage)Core.GetImageSourceFromFileName(SkinController.GetFullPath(art.Path)); //+ Формирование шаблона контрола var xamlGrid = new FrameworkElementFactory(typeof(Grid)); var xamlBorder = new FrameworkElementFactory(typeof(Border)); var xamlImage = new FrameworkElementFactory(typeof(Image)); xamlImage.SetValue(WidthProperty, (double)img.PixelWidth); xamlImage.SetValue(HeightProperty, (double)img.PixelHeight); xamlImage.SetValue(Image.SourceProperty, img); xamlGrid.AppendChild(xamlImage); if (!string.IsNullOrEmpty(comboBox.Text)) { var xamlTextBlock = new FrameworkElementFactory(typeof(TextBlock)); xamlTextBlock.SetValue(TextBlock.TextProperty, comboBox.Text); xamlTextBlock.SetValue(HorizontalAlignmentProperty, HorizontalAlignment.Center); xamlTextBlock.SetValue(VerticalAlignmentProperty, VerticalAlignment.Center); if (SkinController.SkinApp.Styles.Any(t => t.Name == comboBox.Style)) { var textStyle = SkinController.SkinApp.Styles.First(t => t.Name == comboBox.Style); xamlTextBlock.SetValue(TextBlock.FontSizeProperty, textStyle.Height); if (textStyle.Weight > 0) { xamlTextBlock.SetValue(TextBlock.FontWeightProperty, textStyle.Weight); } xamlTextBlock.SetValue(TextBlock.FontFamilyProperty, new FontFamily(textStyle.Face)); xamlTextBlock.SetValue(TextBlock.ForegroundProperty, Core.GetColorBrushFromString(textStyle.Default)); } xamlGrid.AppendChild(xamlTextBlock); } xamlBorder.AppendChild(xamlGrid); Template = new ControlTemplate { VisualTree = xamlBorder }; //- Формирование шаблона контрола }