public static Brush RandomizeBrush(Brush brush) { if (brush is SolidColorBrush) { return(new SolidColorBrush(GetRandomRainbowMediaColor())); } if (brush is LinearGradientBrush) { var randomBrush = (LinearGradientBrush)brush.CloneCurrentValue(); var rand = GetRandomRainbowMediaColor(); foreach (var stop in randomBrush.GradientStops) { stop.Color = System.Windows.Media.Color.FromArgb(stop.Color.A, rand.R, rand.G, rand.B); } return(randomBrush); } if (brush is RadialGradientBrush) { var randomBrush = (RadialGradientBrush)brush.CloneCurrentValue(); var rand = GetRandomRainbowMediaColor(); foreach (var stop in randomBrush.GradientStops) { stop.Color = System.Windows.Media.Color.FromArgb(stop.Color.A, rand.R, rand.G, rand.B); } return(randomBrush); } return(brush); }
public void UpdateNodeBrushes(Brush brush, Dictionary<int, List<SankeyNode>> nodes) { if(diagram == null || brush == null || nodes == null || nodes.Count < 2) { return; } if(diagram.UsePallette == SankeyPalette.NodesLinks) { return; } ResetHighlight(); foreach(var levelNodes in nodes.Values) { foreach(var node in levelNodes) { node.Shape.Fill = brush.CloneCurrentValue(); } } }
public static Brush RandomizeBrush(Brush brush) { if (brush is SolidColorBrush) { return new SolidColorBrush(GetRandomRainbowMediaColor()); } if (brush is LinearGradientBrush) { var randomBrush = (LinearGradientBrush) brush.CloneCurrentValue(); var rand = GetRandomRainbowMediaColor(); foreach (var stop in randomBrush.GradientStops) stop.Color = System.Windows.Media.Color.FromArgb(stop.Color.A, rand.R, rand.G, rand.B); return randomBrush; } if (brush is RadialGradientBrush) { var randomBrush = (RadialGradientBrush) brush.CloneCurrentValue(); var rand = GetRandomRainbowMediaColor(); foreach (var stop in randomBrush.GradientStops) stop.Color = System.Windows.Media.Color.FromArgb(stop.Color.A, rand.R, rand.G, rand.B); return randomBrush; } return brush; }
void Initialize() { Window_Border = new Border(); this.Content = Window_Border; Window_Border.BorderThickness = new Thickness(1); Window_Border.Background = new SolidColorBrush(Color.FromRgb(56, 56, 56)); Window_Border.ClipToBounds = true; Window_Border.Child = Window_Grid; DarkenOverlay.Background = Brushes.Black; DarkenOverlay.Opacity = 0; DarkenOverlay.Visibility = System.Windows.Visibility.Collapsed; DarkenOverlay.BorderThickness = new Thickness(0); DarkenOverlay.IsHitTestVisible = false; Window_Grid.Children.Add(Window_TitleGrid); Window_Content_Grid.Children.Add(ContentPlaceHolder); Window_Grid.Children.Add(Window_Content_Grid); Window_Grid.Children.Add(DarkenOverlay); #region TITLE_BAR Window_TitleGrid.ClipToBounds = true; Window_TitleGrid.Height = TITLE_BAR_HEIGHT; Window_TitleGrid.VerticalAlignment = System.Windows.VerticalAlignment.Top; Window_TitleGrid.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; Window_TitleGrid.Children.Add(TitleIcon); Window_TitleGrid.Children.Add(Window_TitleLabel); Window_TitleGrid.Children.Add(Window_Button_Close); Window_TitleGrid.Children.Add(Window_Button_Maximize); Window_TitleGrid.Children.Add(Window_Button_Minimize); Window_TitleLabel.VerticalAlignment = System.Windows.VerticalAlignment.Top; Window_TitleLabel.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; Window_TitleLabel.Height = TITLE_BAR_HEIGHT - 2; Window_TitleLabel.VerticalContentAlignment = System.Windows.VerticalAlignment.Center; Window_TitleLabel.Margin = new Thickness(30, 0, 140, 0); Window_TitleLabel.Foreground = Brushes.White; Window_Button_Close.MouseEnter += Window_Button_MouseEnter; Window_Button_Close.MouseLeave += Window_Button_MouseLeave; Window_Button_Close.Click += Window_Close; Window_Button_Close.Content = 'r'; Window_Button_Close.FontFamily = new System.Windows.Media.FontFamily("Webdings"); Window_Button_Close.FontSize = 11; Window_Button_Close.Height = 19; Window_Button_Close.HorizontalAlignment = System.Windows.HorizontalAlignment.Right; Window_Button_Close.VerticalAlignment = System.Windows.VerticalAlignment.Top; Window_Button_Close.Padding = new Thickness(0, -CHROME_BUTTON_TOP_MARGIN - 1, 0, 0); Window_Button_Close.Foreground = Brushes.Black; Window_Button_Close.BorderThickness = new Thickness(1); Window_Button_Close.FontWeight = FontWeights.Bold; Window_Button_Close.Width = X_BUTTON_NORMAL_WIDTH; Window_Button_Close.Margin = new Thickness(0, CHROME_BUTTON_TOP_MARGIN, 5, 0); Window_Button_Close.Focusable = false; WindowChrome.SetIsHitTestVisibleInChrome(Window_Button_Close, true); Window_Button_Maximize.MouseEnter += Window_Button_MouseEnter; Window_Button_Maximize.MouseLeave += Window_Button_MouseLeave; Window_Button_Maximize.Click += Window_MaximizeRestore; Window_Button_Maximize.Content = '1'; Window_Button_Maximize.FontFamily = new System.Windows.Media.FontFamily("Webdings"); Window_Button_Maximize.FontSize = 11; Window_Button_Maximize.Height = 19; Window_Button_Maximize.HorizontalAlignment = System.Windows.HorizontalAlignment.Right; Window_Button_Maximize.VerticalAlignment = System.Windows.VerticalAlignment.Top; Window_Button_Maximize.Padding = new Thickness(0, -CHROME_BUTTON_TOP_MARGIN - 1, 0, 0); Window_Button_Maximize.Foreground = Brushes.Black; Window_Button_Maximize.BorderThickness = new Thickness(1); Window_Button_Maximize.FontWeight = FontWeights.Bold; Window_Button_Maximize.Width = 30; Window_Button_Maximize.Margin = new Thickness(0, CHROME_BUTTON_TOP_MARGIN, 52, 0); Window_Button_Maximize.Focusable = false; WindowChrome.SetIsHitTestVisibleInChrome(Window_Button_Maximize, true); Window_Button_Minimize.MouseEnter += Window_Button_MouseEnter; Window_Button_Minimize.MouseLeave += Window_Button_MouseLeave; Window_Button_Minimize.Click += Window_Minimize; Window_Button_Minimize.Content = '0'; Window_Button_Minimize.FontFamily = new System.Windows.Media.FontFamily("Webdings"); Window_Button_Minimize.FontSize = 11; Window_Button_Minimize.Height = 19; Window_Button_Minimize.HorizontalAlignment = System.Windows.HorizontalAlignment.Right; Window_Button_Minimize.VerticalAlignment = System.Windows.VerticalAlignment.Top; Window_Button_Minimize.Padding = new Thickness(0, -CHROME_BUTTON_TOP_MARGIN - 1, 0, 0); Window_Button_Minimize.Foreground = Brushes.Black; Window_Button_Minimize.BorderThickness = new Thickness(1); Window_Button_Minimize.FontWeight = FontWeights.Bold; Window_Button_Minimize.Width = 30; Window_Button_Minimize.Margin = new Thickness(0, CHROME_BUTTON_TOP_MARGIN, 81, 0); Window_Button_Minimize.Focusable = false; WindowChrome.SetIsHitTestVisibleInChrome(Window_Button_Minimize, true); #endregion #region COLOR_PICKER foreach (ThemeColors t in AvailableThemeColors) { MenuItem NewItem = new MenuItem(); NewItem.Header = t; NewItem.Click += (o, e) => { ThemeColor = (ThemeColors)((MenuItem)e.Source).Header; }; ColorPicker.Items.Add(NewItem); } //Window_TitleGrid.ContextMenu = ColorPicker; #endregion Window_Button_Close.Style = (Style)this.FindResource("Window_Button_Close"); Window_Button_Maximize.Style = (Style)this.FindResource("Window_Button_Maximize"); Window_Button_Minimize.Style = (Style)this.FindResource("Window_Button_Minimize"); Window_TitleGrid.Style = (Style)this.FindResource("Window_Frame_Title_Bar"); Window_Border.Style = (Style)this.FindResource("Window_Frame_Border"); TitleEnabledBackground = Window_TitleGrid.Background.CloneCurrentValue(); TitleDisabledBackground = TitleEnabledBackground.CloneCurrentValue(); TitleDisabledBackground.Opacity = 0.4; TitleEnabledBackground.Freeze(); TitleDisabledBackground.Freeze(); }