Пример #1
0
        private void ToggleSortMode(object sender, RoutedEventArgs e)
        {
            StackPanel sp = SortModeButton.Content as StackPanel;

            if (sp == null)
            {
                return;
            }

            PackIconModern icon = (PackIconModern)sp.FindName("SortButtonIcon");

            if (Model.NoteMenuContext.SortMode == "AZ")
            {
                Model.NoteMenuContext.SortMode = "ZA";
                icon.Kind = PackIconModernKind.SortAlphabeticalDescending;
            }
            else if (Model.NoteMenuContext.SortMode == "ZA")
            {
                Model.NoteMenuContext.SortMode = "Index";
                icon.Kind = PackIconModernKind.SortNumeric;
            }
            else if (Model.NoteMenuContext.SortMode == "Index")
            {
                Model.NoteMenuContext.SortMode = "AZ";
                icon.Kind = PackIconModernKind.SortAlphabeticalAscending;
            }
        }
        private StackPanel GenerateHeader(TreeItem item)
        {
            var textBlock   = new TextBlock();
            var textBinding = new Binding("DisplayText")
            {
                Source = item
            };

            BindingOperations.SetBinding(textBlock, TextBlock.TextProperty, textBinding);

            var packIconModern = new PackIconModern
            {
                Margin = new Thickness(0, 0, 5, 0)
            };
            var iconBinding = new Binding("Icon")
            {
                Source = item
            };

            BindingOperations.SetBinding(packIconModern, PackIconModern.KindProperty, iconBinding);

            return(new StackPanel
            {
                Orientation = Orientation.Horizontal,
                Children =
                {
                    packIconModern,
                    textBlock
                }
            });
        }
Пример #3
0
        private void CreateMember()
        {
            sp = new StackPanel();

            sp.Orientation = Orientation.Horizontal;
            icon           = new PackIconModern()
            {
                Kind = PackIconModernKind.Connect,
                VerticalAlignment   = VerticalAlignment.Center,
                HorizontalAlignment = HorizontalAlignment.Center
            };
            icon.Margin = new Thickness(2, 0, 3, 0);
            sp.Children.Add(icon);

            //Binding binding = new Binding("IsConnected");
            //binding.Mode = BindingMode.OneWay;
            //binding.Source = this;
            //binding.Converter = new BooleanToVisibilityConverter();
            //BindingOperations.SetBinding(icon,PackIconModern.VisibilityProperty, binding);
            icon.Visibility = Visibility.Hidden;

            tb            = new TextBlock();
            tb.Foreground = Brushes.Black;
            sp.Children.Add(tb);

            this.Header = sp;
        }
Пример #4
0
        static void OnIconKindChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            ToolBoxItemControl ctrl = (ToolBoxItemControl)d;

            ctrl.Logger.MethodCalled();
            ctrl.Logger.PropertyValue("IconUri", ctrl.IconUri);
            ctrl.Logger.PropertyValue("IconKind", ctrl.IconKind);

            if (string.IsNullOrEmpty(ctrl.IconUri) && ctrl.IconKind != null)
            {
                ctrl.Logger.Debug("IconUri is empty & IconKind is not null");

                PackIconModern packIcon = (PackIconModern)ctrl.FindName("PackIcon");
                if (packIcon != null)
                {
                    packIcon.Visibility = Visibility.Visible;
                    ctrl.Logger.Debug("PackIcon shown");
                }

                Image icon = (Image)ctrl.FindName("ImageIcon");
                if (icon != null)
                {
                    icon.Visibility = Visibility.Collapsed;
                    ctrl.Logger.Debug("ImageIcon shown");
                }
            }
            else
            {
                ctrl.Logger.Debug("Either IconUri is not null or IconKind is null");
            }
        }
Пример #5
0
        public ServerListBoxItem()
        {
            this.HorizontalAlignment = HorizontalAlignment.Stretch;

            StackPanel sp = new StackPanel();

            sp.Orientation = Orientation.Horizontal;


            icon = new PackIconModern()
            {
                Kind = PackIconModernKind.Connect,
                VerticalAlignment   = VerticalAlignment.Center,
                HorizontalAlignment = HorizontalAlignment.Center
            };
            icon.Margin = new Thickness(2, 0, 3, 0);
            sp.Children.Add(icon);

            tb = new TextBlock();
            //this.tb.Foreground = Brushes.Black;
            sp.Children.Add(tb);
            //this.Text = si.Name;

            this.Content = sp;
        }
Пример #6
0
        public ApplicationViewInfo(ApplicationViewManager.Name name, PackIconModern packIconModern)
        {
            Name           = name;
            TranslatedName = ApplicationViewManager.GetTranslatedNameByName(name);
            var canvas = new Canvas();

            canvas.Children.Add(packIconModern);
            Icon = canvas;
        }
Пример #7
0
        public SettingsViewInfo(SettingsViewManager.Name name, PackIconModern packIconModern, SettingsViewManager.Group group)
        {
            Name           = name;
            TranslatedName = SettingsViewManager.TranslateName(name, group);
            Canvas canvas = new Canvas();

            canvas.Children.Add(packIconModern);
            Icon            = canvas;
            Group           = group;
            TranslatedGroup = SettingsViewManager.TranslateGroup(group);
        }
Пример #8
0
        public static void ApplyPackIcon(Control control, string packIconKey)
        {
            string packIconKind = packIconKey;

            object packIconControl = control.Template
                                     .FindName("PackIcon", control)
                                     as object;


            if (packIconControl is PackIconMaterial)
            {
                PackIconMaterial packIcon = (PackIconMaterial)packIconControl;
                packIcon.Kind = (PackIconMaterialKind)Enum
                                .Parse(typeof(PackIconMaterialKind), packIconKind);
            }
            else if (packIconControl is PackIconMaterialLight)
            {
                PackIconMaterialLight packIconLight = (PackIconMaterialLight)packIconControl;
                packIconLight.Kind = (PackIconMaterialLightKind)Enum
                                     .Parse(typeof(PackIconMaterialLightKind), packIconKind);
            }
            else if (packIconControl is PackIconModern)
            {
                PackIconModern packIconModern = (PackIconModern)packIconControl;
                packIconModern.Kind = (PackIconModernKind)Enum
                                      .Parse(typeof(PackIconModernKind), packIconKind);
            }
            else if (packIconControl is PackIconOcticons)
            {
                PackIconOcticons packIconOcticons = (PackIconOcticons)packIconControl;
                packIconOcticons.Kind = (PackIconOcticonsKind)Enum
                                        .Parse(typeof(PackIconOcticonsKind), packIconKind);
            }
            else if (packIconControl is PackIconSimpleIcons)
            {
                PackIconSimpleIcons packIconSimple = (PackIconSimpleIcons)packIconControl;
                packIconSimple.Kind = (PackIconSimpleIconsKind)Enum
                                      .Parse(typeof(PackIconSimpleIconsKind), packIconKind);
            }
            else if (packIconControl is PackIconEntypo)
            {
                PackIconEntypo packIconSimple = (PackIconEntypo)packIconControl;
                packIconSimple.Kind = (PackIconEntypoKind)Enum
                                      .Parse(typeof(PackIconEntypoKind), packIconKind);
            }
            else if (packIconControl is PackIconFontAwesome)
            {
                PackIconFontAwesome packIconSimple = (PackIconFontAwesome)packIconControl;
                packIconSimple.Kind = (PackIconFontAwesomeKind)Enum
                                      .Parse(typeof(PackIconFontAwesomeKind), packIconKind);
            }
        }
Пример #9
0
        static void OnIconUriChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            ToolBoxItemControl ctrl = (ToolBoxItemControl)d;

            ctrl.Logger.MethodCalled();
            ctrl.Logger.PropertyValue("IconUri", ctrl.IconUri);
            ctrl.Logger.PropertyValue("IconKind", ctrl.IconKind);

            if (!string.IsNullOrEmpty(ctrl.IconUri))
            {
                ctrl.Logger.Debug("IconUri contains value; PackIcon will be collapsed & ImageIcon will be shown");

                PackIconModern packIcon = (PackIconModern)ctrl.FindName("PackIcon");
                if (packIcon != null)
                {
                    packIcon.Visibility = Visibility.Collapsed;
                    ctrl.Logger.Debug("PackIcon collapsed");
                }

                Image icon = (Image)ctrl.FindName("ImageIcon");
                if (icon != null)
                {
                    icon.Visibility = Visibility.Visible;
                    ctrl.Logger.Debug("ImageIcon shown");
                }
            }
            else
            {
                ctrl.Logger.Debug("IconUri is empty; ImageIcon will be collapsed & PackIcon will be shown");

                PackIconModern packIcon = (PackIconModern)ctrl.FindName("PackIcon");
                if (packIcon != null)
                {
                    packIcon.Visibility = Visibility.Visible;
                    ctrl.Logger.Debug("PackIcon shown");
                }

                Image icon = (Image)ctrl.FindName("ImageIcon");
                if (icon != null)
                {
                    icon.Visibility = Visibility.Collapsed;
                    ctrl.Logger.Debug("ImageIcon collapsed");
                }
            }
        }
Пример #10
0
        private void ButtonMute_Mute()
        {
            var stackPanel = new StackPanel()
            {
                Orientation = Orientation.Horizontal
            };
            var packIconMaterial = new PackIconModern()
            {
                Kind              = PackIconModernKind.SoundMute,
                Margin            = new Thickness(4, 4, 2, 4),
                Width             = 30,
                Height            = 30,
                VerticalAlignment = VerticalAlignment.Center
            };

            stackPanel.Children.Add(packIconMaterial);
            buttonMute.Content = stackPanel;
        }
Пример #11
0
        protected override ImageSource CreateImageSource(object value, Brush foregroundBrush, double penThickness)
        {
            var packIcon = new PackIconModern {
                Kind = (PackIconModernKind)value
            };

            var geometryDrawing = new GeometryDrawing
            {
                Geometry = Geometry.Parse(packIcon.Data),
                Brush    = foregroundBrush,
                Pen      = new Pen(foregroundBrush, penThickness)
            };

            var drawingGroup = new DrawingGroup {
                Children = { geometryDrawing }
            };

            return(new DrawingImage {
                Drawing = drawingGroup
            });
        }
Пример #12
0
        private void AddDebitPanel()
        {
            s1             = new StackPanel();
            s1.Orientation = Orientation.Horizontal;
            //s.Margin = new Thickness(5, 0, 0, 0);
            TextBox  t  = new TextBox();
            ComboBox c  = new ComboBox();
            Button   b1 = new Button();

            b1.Style = (Style)Application.Current.FindResource("PlusButtom");
            var v = new PackIconModern()
            {
                Kind = PackIconModernKind.Minus, Height = 15, Width = 15, FontWeight = FontWeights.ExtraBold, Foreground = (SolidColorBrush)(new BrushConverter().ConvertFrom("#AEE71B"))
            };

            b1.Content            = v;
            b1.Click             += B1_Click;
            c.ItemsSource         = ((FinanceViewModel)DataContext).LedgerAccounts;
            c.DisplayMemberPath   = "AccountName";
            c.SelectedValuePath   = "LedgerAccountId";
            c.IsEditable          = true;
            c.IsTextSearchEnabled = true;
            c.Text = "Select Account";

            t.Width = 200;
            c.Width = 300;
            TextBoxHelper.SetWatermark(t, "Please Enter Debit Amount");
            t.MinHeight = 35;
            c.Height    = 35;
            t.KeyDown  += textBox21_KeyDown;
            t.Margin    = new Thickness(5);
            c.Margin    = new Thickness(5);
            b1.Margin   = new Thickness(5);
            s1.Children.Add(c);
            s1.Children.Add(t);
            s1.Children.Add(b1);
            xt1.Children.Add(s1);
        }
Пример #13
0
        //public bool IsConnected { get { return SSHController.CheckConnection(serverinfo.ip, serverinfo.port); } }
        private void CreateMember()
        {
            list_total_serverinfo.Add(this);

            this.Orientation = Orientation.Horizontal;
            icon             = new PackIconModern()
            {
                Kind = PackIconModernKind.Connect,
                VerticalAlignment   = VerticalAlignment.Center,
                HorizontalAlignment = HorizontalAlignment.Center
            };
            icon.Margin = new Thickness(2, 0, 3, 0);
            this.Children.Add(icon);

            //Binding binding = new Binding("IsConnected");
            //binding.Mode = BindingMode.OneWay;
            //binding.Source = this;
            //binding.Converter = new BooleanToVisibilityConverter();
            //BindingOperations.SetBinding(icon,PackIconModern.VisibilityProperty, binding);
            icon.Visibility = Visibility.Hidden;

            tb = new TextBlock();
            this.Children.Add(tb);
        }
Пример #14
0
        public ConfigMenuTreeViewItem()
        {
            this.HorizontalAlignment = HorizontalAlignment.Stretch;

            grid = new Grid();
            grid.ColumnDefinitions.Add(new ColumnDefinition()
            {
                Width = new GridLength(1, GridUnitType.Star)
            });
            DockPanel dp = new DockPanel();

            grid.Children.Add(dp);
            Grid.SetColumn(dp, 0);

            icon = new PackIconModern()
            {
                Kind = PackIconModernKind.Connect,
                VerticalAlignment   = VerticalAlignment.Center,
                HorizontalAlignment = HorizontalAlignment.Center
            };
            icon.Margin     = new Thickness(2, 0, 3, 0);
            icon.Visibility = Visibility.Hidden;
            dp.Children.Add(icon);

            tb_title            = new TextBlock();
            tb_title.Foreground = Brushes.Black;
            dp.Children.Add(tb_title);

            grid.ColumnDefinitions.Add(new ColumnDefinition()
            {
                Width = new GridLength(1, GridUnitType.Star)
            });
            tb_dir            = new TextBlock();
            tb_dir.Foreground = Brushes.Black;
            tb_dir.Margin     = new Thickness(0, 0, 5, 0);
            tb_dir.Visibility = Visibility.Collapsed;
            grid.Children.Add(tb_dir);
            Grid.SetColumn(tb_dir, 1);

            this.Header    = grid;
            this.AllowDrop = true;

            this.ContextMenu = new ContextMenu();

            DelConfigWorkGroupCommand = new RelayCommand(DelConfigWorkGroup);
            DelConfigProcessCommand   = new RelayCommand(DelConfigProcess);
            RequestEncryptionCommand  = new RelayCommand(RequestEncryption);

            item_delGroupConfig         = new MenuItem();
            item_delGroupConfig.Command = DelConfigWorkGroupCommand;
            item_delGroupConfig.Header  = "Del Config Work Group";
            item_delGroupConfig.Icon    = new PackIconMaterial()
            {
                Kind = PackIconMaterialKind.FolderRemove,
                VerticalAlignment   = VerticalAlignment.Center,
                HorizontalAlignment = HorizontalAlignment.Center
            };
            item_delGroupConfig.Visibility = Visibility.Collapsed;
            this.ContextMenu.Items.Add(item_delGroupConfig);

            item_delConfig         = new MenuItem();
            item_delConfig.Command = DelConfigProcessCommand;
            item_delConfig.Header  = "Del Config";
            item_delConfig.Icon    = new PackIconMaterial()
            {
                Kind = PackIconMaterialKind.FolderRemove,
                VerticalAlignment   = VerticalAlignment.Center,
                HorizontalAlignment = HorizontalAlignment.Center
            };
            item_delConfig.Visibility = Visibility.Collapsed;
            this.ContextMenu.Items.Add(item_delConfig);

            strEnc               = "암호화";
            cofileEnc            = "-e";
            item_encrypt         = new MenuItem();
            item_encrypt.Command = RequestEncryptionCommand;
            item_encrypt.Header  = "Encrypt";
            item_encrypt.Icon    = new PackIconMaterial()
            {
                Kind = PackIconMaterialKind.Lock,
                VerticalAlignment   = VerticalAlignment.Center,
                HorizontalAlignment = HorizontalAlignment.Center
            };
            item_encrypt.Visibility = Visibility.Collapsed;
            this.ContextMenu.Items.Add(item_encrypt);

            strEnc               = "복호화";
            cofileEnc            = "-d";
            item_decrypt         = new MenuItem();
            item_decrypt.Command = RequestEncryptionCommand;
            item_decrypt.Header  = "Decrypt";
            item_decrypt.Icon    = new PackIconMaterial()
            {
                Kind = PackIconMaterialKind.Lock,
                VerticalAlignment   = VerticalAlignment.Center,
                HorizontalAlignment = HorizontalAlignment.Center
            };
            item_decrypt.Visibility = Visibility.Collapsed;
            this.ContextMenu.Items.Add(item_decrypt);
        }
Пример #15
0
        public CoreMenuItem(Codon codon, object caller, IReadOnlyCollection <ICondition> conditions)
        {
            this.codon      = codon;
            this.caller     = caller;
            this.conditions = conditions;

            if (codon.Properties.Contains("template"))
            {
                this.Template = Application.Current.FindResource("MenuItemTemplateKey") as ControlTemplate;
                this.ApplyTemplate();
            }
            else
            {
                if (codon.Properties.Contains("packIconKey"))
                {
                    string[] packIconValues = codon.Properties["packIconKey"].Split(';');
                    string   packIconType   = packIconValues[0];
                    string   packIconKind   = packIconValues[1];
                    //object icon = null;

                    switch (packIconType)
                    {
                    case "PackIconMaterial":
                        var icon = new PackIconMaterial();
                        ((PackIconMaterial)icon).Kind = (PackIconMaterialKind)Enum
                                                        .Parse(typeof(PackIconMaterialKind),
                                                               packIconKind);
                        this.Icon = icon;
                        break;

                    case "PackIconMaterialLight":
                        var icon1 = new PackIconMaterialLight();
                        ((PackIconMaterialLight)icon1).Kind = (PackIconMaterialLightKind)Enum
                                                              .Parse(typeof(PackIconMaterialLightKind),
                                                                     packIconKind);
                        this.Icon = icon1;
                        break;

                    case "PackIconModern":
                        var icon2 = new PackIconModern();
                        ((PackIconModern)icon2).Kind = (PackIconModernKind)Enum
                                                       .Parse(typeof(PackIconModernKind),
                                                              packIconKind);
                        this.Icon = icon2;
                        break;

                    case "PackIconOcticons":
                        var icon3 = new PackIconOcticons();
                        ((PackIconOcticons)icon3).Kind = (PackIconOcticonsKind)Enum
                                                         .Parse(typeof(PackIconOcticonsKind),
                                                                packIconKind);
                        this.Icon = icon3;
                        break;

                    case "PackIconSimpleIcons":
                        var icon4 = new PackIconSimpleIcons();
                        ((PackIconSimpleIcons)icon4).Kind = (PackIconSimpleIconsKind)Enum
                                                            .Parse(typeof(PackIconSimpleIconsKind),
                                                                   packIconKind);
                        this.Icon = icon4;
                        break;

                    case "PackIconEntypo":
                        var icon5 = new PackIconEntypo();
                        ((PackIconEntypo)icon5).Kind = (PackIconEntypoKind)Enum
                                                       .Parse(typeof(PackIconEntypoKind),
                                                              packIconKind);
                        this.Icon = icon5;
                        break;

                    case "PackIconFontAwesome":
                        var icon6 = new PackIconFontAwesome();
                        ((PackIconFontAwesome)icon6).Kind = (PackIconFontAwesomeKind)Enum
                                                            .Parse(typeof(PackIconFontAwesomeKind),
                                                                   packIconKind);
                        this.Icon = icon6;
                        break;
                    }
                    //this.Icon = icon;
                }
                else
                {
                    if (codon.Properties.Contains("icon"))
                    {
                        try {
                            var image = new Image();
                            image.Source = PresentationResourceService.GetBitmapSource(codon.Properties["icon"]);
                            image.Height = 16;
                            this.Icon    = image;
                        } catch (ResourceNotFoundException) {}
                    }
                }
            }

            if (codon.Properties.Contains("style"))
            {
                Style customStyle = Application.Current.TryFindResource("MenuItemStyleKey") as Style;

                if (customStyle != null)
                {
                    this.Style = customStyle;
                    this.UpdateLayout();
                }
            }
            else
            {
                //if (codon.Properties.Contains("packIconKey")) { //Apply material theme if PackIcon theme is used
                Style matStyle = Application.Current.TryFindResource("MaterialDesignMenuItem") as Style;
                if (matStyle != null)
                {
                    this.Style = matStyle;
                }
                //}
            }

            UpdateText();
        }
        private async Task AddSubscriptionPanel(Subscription sub)
        {
            var channel = await sub.GetChannel();

            _ = Dispatcher.InvokeAsync(() =>
            {
                int row = SubscriptionsGrid.RowDefinitions.Count;
                RowDefinition rowDefinition = new RowDefinition
                {
                    Height = GridLength.Auto,
                };
                SubscriptionsGrid.RowDefinitions.Add(rowDefinition);

                Image logo = new Image
                {
                    MaxWidth          = 120,
                    MaxHeight         = 120,
                    Width             = 98,
                    Height            = 98,
                    Margin            = new Thickness(2),
                    Source            = new BitmapImage(new Uri(channel.LogoUrl)),
                    VerticalAlignment = VerticalAlignment.Top
                };
                Grid.SetColumn(logo, 0);
                Grid.SetRow(logo, row);
                SubscriptionsGrid.Children.Add(logo);


                TextBlock description = new TextBlock
                {
                    Height            = 40,
                    Width             = double.NaN,
                    FontSize          = 14,
                    VerticalAlignment = VerticalAlignment.Top
                };
                description.Inlines.Add(string.Concat(FindResource("PlaylistTitle"), channel.Title, "\n"));
                description.Inlines.Add(string.Concat(FindResource("LastVideoDownloadDate"), sub.LatestVideoDownloaded.ToLocalTime().ToShortDateString()));
                Grid.SetColumn(description, 1);
                Grid.SetRow(description, row);
                SubscriptionsGrid.Children.Add(description);

                StackPanel buttonsPanel = new StackPanel
                {
                    VerticalAlignment = VerticalAlignment.Center
                };
                Grid.SetColumn(buttonsPanel, 2);
                Grid.SetRow(buttonsPanel, row);
                SubscriptionsGrid.Children.Add(buttonsPanel);

                Tile settingsButton = new Tile
                {
                    Height = double.NaN,
                    Width  = double.NaN,
                    Margin = new Thickness(2.5),
                    HorizontalAlignment = HorizontalAlignment.Center,
                    VerticalAlignment   = VerticalAlignment.Center
                },
                removeButton = new Tile
                {
                    Height = double.NaN,
                    Width  = double.NaN,
                    Margin = new Thickness(2.5),
                    HorizontalAlignment = HorizontalAlignment.Center,
                    VerticalAlignment   = VerticalAlignment.Center
                };

                removeButton.Click += (s, e) =>
                {
                    rowDefinition.Height = new GridLength(0);
                    Subscriptions.Remove(Subscriptions.FirstOrDefault(x => x.ChannelId.Equals(sub.ChannelId)));
                };

                settingsButton.Click += (s, e) =>
                {
                    GlobalConsts.LoadFlyoutPage(new SubscriptionSettings(sub));
                };

                buttonsPanel.Children.Add(settingsButton);
                buttonsPanel.Children.Add(removeButton);

                WrapPanel settingsButtonWrapPanel = new WrapPanel(), removeButtonWrapPanel = new WrapPanel();

                //Settings button
                PackIconModern settingsButtonIcon = new PackIconModern
                {
                    Kind   = PackIconModernKind.Cogs,
                    Width  = 35,
                    Height = 35,
                    Margin = new Thickness(5)
                };
                TextBlock settingsButtonTextBlock = new TextBlock
                {
                    Text = $"{FindResource("Settings")}",
                    VerticalAlignment = VerticalAlignment.Center,
                    FontSize          = 16,
                    Margin            = new Thickness(2.5, 5, 7.5, 5)
                };
                settingsButtonWrapPanel.Children.Add(settingsButtonIcon);
                settingsButtonWrapPanel.Children.Add(settingsButtonTextBlock);
                settingsButton.Content = settingsButtonWrapPanel;

                //Remove button
                PackIconModern removeButtonIcon = new PackIconModern
                {
                    Kind   = PackIconModernKind.Close,
                    Width  = 35,
                    Height = 35,
                    Margin = new Thickness(5)
                };
                TextBlock removeButtonTextBlock = new TextBlock
                {
                    Text = $"{FindResource("Remove")}",
                    VerticalAlignment = VerticalAlignment.Center,
                    FontSize          = 16,
                    Margin            = new Thickness(2.5, 5, 7.5, 5)
                };
                removeButtonWrapPanel.Children.Add(removeButtonIcon);
                removeButtonWrapPanel.Children.Add(removeButtonTextBlock);
                removeButton.Content = removeButtonWrapPanel;

                GridScrollViewer.Height = GlobalConsts.Current.ActualHeight - 300;
                GridScrollViewer.UpdateLayout();
            });
        }
        /// <summary>
        /// nuget套件 MahApps.Metro.IconPacks
        /// 三种雪花样式,下降加旋转动画
        /// </summary>
        /// <param name="panel"></param>
        void StartSnowing(Canvas panel)
        {
            Random random = new Random();

            Task.Factory.StartNew(new Action(() =>
            {
                for (int j = 0; j < 25; j++)
                {
                    Thread.Sleep(j * 100);
                    Dispatcher.Invoke(new Action(() =>
                    {
                        int snowCount = random.Next(0, 10);
                        for (int i = 0; i < snowCount; i++)
                        {
                            int width         = random.Next(10, 20);
                            PackIconBase pack = null;
                            int snowType      = random.Next(3);              //三种雪花
                            switch (snowType)
                            {
                            case 0: pack = new PackIconFontAwesome()
                            {
                                Kind = PackIconFontAwesomeKind.SnowflakeRegular
                            }; break;

                            case 1: pack = new PackIconMaterial()
                            {
                                Kind = PackIconMaterialKind.Snowflake
                            }; break;

                            case 2: pack = new PackIconModern()
                            {
                                Kind = PackIconModernKind.Snowflake
                            }; break;

                            default:
                                break;
                            }
                            pack.Width           = width;
                            pack.Height          = width;
                            pack.Foreground      = Brushes.White;
                            pack.BorderThickness = new Thickness(0);
                            pack.RenderTransform = new RotateTransform();

                            int left = random.Next(0, (int)panel.ActualWidth);
                            Canvas.SetLeft(pack, left);
                            panel.Children.Add(pack);
                            int seconds = random.Next(20, 30);
                            DoubleAnimationUsingPath doubleAnimation = new DoubleAnimationUsingPath()        //下降动画
                            {
                                Duration       = new Duration(new TimeSpan(0, 0, seconds)),
                                RepeatBehavior = RepeatBehavior.Forever,
                                PathGeometry   = new PathGeometry(new List <PathFigure>()
                                {
                                    new PathFigure(new Point(left, 0), new List <PathSegment>()
                                    {
                                        new LineSegment(new Point(left, panel.ActualHeight), false)
                                    }, false)
                                }),
                                Source = PathAnimationSource.Y
                            };
                            pack.BeginAnimation(Canvas.TopProperty, doubleAnimation);
                            DoubleAnimation doubleAnimation1 = new DoubleAnimation(360, new Duration(new TimeSpan(0, 0, 10)))              //旋转动画
                            {
                                RepeatBehavior = RepeatBehavior.Forever,
                            };
                            pack.RenderTransform.BeginAnimation(RotateTransform.AngleProperty, doubleAnimation1);
                        }
                    }));
                }
            }));
        }
Пример #18
0
        public TreeNode()
        {
            panel.Orientation = Orientation.Horizontal;
            panel.Children.Add(viewbox);
            panel.Children.Add(textLabelCtl);
            panel.Children.Add(textBoxCtl);

            if (this.IconPath != null)
            {
                if (this.IconPath.Contains(";"))
                {
                    string[] packIconValues = IconPath.Split(';');
                    string   packIconType   = packIconValues[0];
                    string   packIconKind   = packIconValues[1];

                    switch (packIconType)
                    {
                    case "PackIconMaterial":
                        PackIconMaterial iconMat = new PackIconMaterial();
                        ((PackIconMaterial)iconMat).Kind = (PackIconMaterialKind)Enum
                                                           .Parse(typeof(PackIconMaterialKind),
                                                                  packIconKind);

                        viewbox.Child = iconMat;
                        break;

                    case "PackIconMaterialLight":
                        PackIconMaterialLight iconMatLight = new PackIconMaterialLight();
                        ((PackIconMaterialLight)iconMatLight).Kind = (PackIconMaterialLightKind)Enum
                                                                     .Parse(typeof(PackIconMaterialLightKind),
                                                                            packIconKind);

                        viewbox.Child = iconMatLight;
                        break;

                    case "PackIconModern":
                        PackIconModern iconModern = new PackIconModern();
                        ((PackIconModern)iconModern).Kind = (PackIconModernKind)Enum
                                                            .Parse(typeof(PackIconModernKind),
                                                                   packIconKind);

                        viewbox.Child = iconModern;
                        break;

                    case "PackIconOcticons":
                        PackIconOcticons iconOcti = new PackIconOcticons();
                        ((PackIconOcticons)iconOcti).Kind = (PackIconOcticonsKind)Enum
                                                            .Parse(typeof(PackIconOcticonsKind),
                                                                   packIconKind);

                        viewbox.Child = iconOcti;
                        break;

                    case "PackIconSimpleIcons":
                        PackIconSimpleIcons iconSimple = new PackIconSimpleIcons();
                        ((PackIconSimpleIcons)iconSimple).Kind = (PackIconSimpleIconsKind)Enum
                                                                 .Parse(typeof(PackIconSimpleIconsKind),
                                                                        packIconKind);

                        viewbox.Child = iconSimple;
                        break;

                    case "PackIconEntypo":
                        PackIconEntypo iconEnt = new PackIconEntypo();
                        ((PackIconEntypo)iconEnt).Kind = (PackIconEntypoKind)Enum
                                                         .Parse(typeof(PackIconEntypoKind),
                                                                packIconKind);

                        viewbox.Child = iconEnt;
                        break;

                    case "PackIconFontAwesome":
                        PackIconFontAwesome icon = new PackIconFontAwesome();
                        ((PackIconFontAwesome)icon).Kind = (PackIconFontAwesomeKind)Enum
                                                           .Parse(typeof(PackIconFontAwesomeKind),
                                                                  packIconKind);

                        viewbox.Child = icon;
                        break;
                    }

                    viewbox.Margin = new Thickness(0, 0, 8, 0);
                }
            }

            Style materialDesignTreeViewItem = Application.Current.TryFindResource("MaterialDesignTreeViewItem") as Style;

            if (materialDesignTreeViewItem != null)
            {
                this.Style = materialDesignTreeViewItem;
            }

            Style materialDesignTextbox = Application.Current.TryFindResource("MaterialDesignFloatingHintTextBox") as Style;

            if (materialDesignTextbox != null)
            {
                textBoxCtl.Style = materialDesignTextbox;
                HintAssist.SetHint(this, "(" + HintText + ")");
            }

            this.Header = panel;

            textBoxCtl.Visibility        = Visibility.Collapsed;
            textBoxCtl.LostFocus        += textBox_LostFocus;
            textBoxCtl.IsVisibleChanged += textBox_IsVisibleChanged;
            textBoxCtl.KeyDown          += textBox_KeyDown;

            textLabelCtl.MouseLeftButtonDown += text_MouseLeftButtonDown;
            textLabelCtl.KeyDown             += text_KeyDown;
        }
Пример #19
0
        public static void CreateTemplatedToolBarItem(Control control, Codon codon)
        {
            if (codon.Properties.Contains("template"))
            {
                ControlTemplate customTemplate = (ControlTemplate)Application
                                                 .Current
                                                 .TryFindResource(codon.Properties["template"]);

                if (customTemplate != null)
                {
                    control.Template = customTemplate;
                    control.ApplyTemplate();
                }
            }
            else
            {
                if (codon.Properties.Contains("packIconKey"))
                {
                    string[] packIconValues = codon.Properties["packIconKey"].Split(';');
                    string   packIconType   = packIconValues[0];
                    string   packIconKind   = packIconValues[1];
                    //PackIconBase icon = null;
                    object Icon = null;

                    switch (packIconType)
                    {
                    case "PackIconMaterial":
                        var icon = new PackIconMaterial();
                        ((PackIconMaterial)icon).Kind = (PackIconMaterialKind)Enum
                                                        .Parse(typeof(PackIconMaterialKind),
                                                               packIconKind);
                        Icon = icon;
                        break;

                    case "PackIconMaterialLight":
                        var icon1 = new PackIconMaterialLight();
                        ((PackIconMaterialLight)icon1).Kind = (PackIconMaterialLightKind)Enum
                                                              .Parse(typeof(PackIconMaterialLightKind),
                                                                     packIconKind);
                        Icon = icon1;
                        break;

                    case "PackIconModern":
                        var icon2 = new PackIconModern();
                        ((PackIconModern)icon2).Kind = (PackIconModernKind)Enum
                                                       .Parse(typeof(PackIconModernKind),
                                                              packIconKind);
                        Icon = icon2;
                        break;

                    case "PackIconOcticons":
                        var icon3 = new PackIconOcticons();
                        ((PackIconOcticons)icon3).Kind = (PackIconOcticonsKind)Enum
                                                         .Parse(typeof(PackIconOcticonsKind),
                                                                packIconKind);
                        Icon = icon3;
                        break;

                    case "PackIconSimpleIcons":
                        var icon4 = new PackIconSimpleIcons();
                        ((PackIconSimpleIcons)icon4).Kind = (PackIconSimpleIconsKind)Enum
                                                            .Parse(typeof(PackIconSimpleIconsKind),
                                                                   packIconKind);
                        Icon = icon4;
                        break;

                    case "PackIconEntypo":
                        var icon5 = new PackIconEntypo();
                        ((PackIconEntypo)icon5).Kind = (PackIconEntypoKind)Enum
                                                       .Parse(typeof(PackIconEntypoKind),
                                                              packIconKind);
                        Icon = icon5;
                        break;

                    case "PackIconFontAwesome":
                        var icon6 = new PackIconFontAwesome();
                        ((PackIconFontAwesome)icon6).Kind = (PackIconFontAwesomeKind)Enum
                                                            .Parse(typeof(PackIconFontAwesomeKind),
                                                                   packIconKind);
                        Icon = icon6;
                        break;
                    }

                    if (control is MenuItem)
                    {
                        (control as MenuItem).Header = Icon;
                    }
                    else if (control is MahApps.Metro.Controls.DropDownButton)
                    {
                        (control as MahApps.Metro.Controls.DropDownButton).Content = Icon;
                    }
                    else if (control is MahApps.Metro.Controls.SplitButton)
                    {
                        (control as MahApps.Metro.Controls.SplitButton).Icon = Icon;
                    }
                    else
                    {
                        (control as ContentControl).Content = Icon;
                    }
                }

                if (codon.Properties.Contains("icon"))
                {
                    Image image = new Image();
                    image.Source = PresentationResourceService.GetBitmapSource(StringParser.Parse(codon.Properties["icon"]));
                    image.Height = 16;
                    image.SetResourceReference(FrameworkElement.StyleProperty, ToolBarService.ImageStyleKey);

                    if (control is MenuItem)
                    {
                        (control as MenuItem).Header = image;
                    }
                    else if (control is MahApps.Metro.Controls.DropDownButton)
                    {
                        (control as MahApps.Metro.Controls.DropDownButton).Content = image;
                    }
                    else if (control is MahApps.Metro.Controls.SplitButton)
                    {
                        (control as MahApps.Metro.Controls.SplitButton).Icon = image;
                    }
                    else
                    {
                        (control as ContentControl).Content = image;
                    }
                }

                if (codon.Properties.Contains("label"))
                {
                    Label label = new Label();
                    label.Content = StringParser.Parse(codon.Properties["label"]);
                    label.Padding = new Thickness(0);
                    label.VerticalContentAlignment = VerticalAlignment.Center;

                    if (control is MenuItem)
                    {
                        (control as MenuItem).Header = label;
                    }
                    else if (control is MahApps.Metro.Controls.DropDownButton)
                    {
                        (control as MahApps.Metro.Controls.DropDownButton).Content = label;
                    }
                    else if (control is MahApps.Metro.Controls.SplitButton)
                    {
                        (control as MahApps.Metro.Controls.SplitButton).Icon = label;
                    }
                    else
                    {
                        (control as ContentControl).Content = label;
                    }
                }
            }

            if (codon.Properties.Contains("style"))
            {
                Style customStyle = Application.Current.TryFindResource(codon.Properties["style"]) as Style;

                if (customStyle != null)
                {
                    control.Style = customStyle;
                }
            }
            else
            {
                if (control is MenuItem)
                {
                    Style menuStyle = Application.Current.TryFindResource("MaterialDesignMenuItem") as Style;
                    if (menuStyle != null)
                    {
                        control.Style = menuStyle;
                    }
                }
                else if (control is MahApps.Metro.Controls.DropDownButton)
                {
                    Style  btnStyle = new Style();
                    Setter fg       = new Setter();
                    Setter bg       = new Setter();

//					Style btnStyle = Application.Current.TryFindResource("MaterialDesignToolForegroundButton") as Style;
                    bg.Property = MahApps.Metro.Controls.DropDownButton.BackgroundProperty;
                    bg.Value    = (Brush)Application.Current.TryFindResource("MaterialDesignPaper");
                    fg.Property = MahApps.Metro.Controls.DropDownButton.ForegroundProperty;
                    fg.Value    = (Brush)Application.Current.TryFindResource("MaterialDesignBody");

                    btnStyle.Setters.Add(bg);
                    btnStyle.Setters.Add(fg);

                    if (btnStyle != null)
                    {
                        (control as MahApps.Metro.Controls.DropDownButton).ButtonStyle = btnStyle;
                    }

                    Style menuStyle = Application.Current.TryFindResource("MaterialDesignContextMenu") as Style;
                    if (menuStyle != null)
                    {
                        (control as MahApps.Metro.Controls.DropDownButton).MenuStyle = menuStyle;
                    }
                }
                else if (control is MahApps.Metro.Controls.SplitButton)
                {
                    Style lbStyle = Application.Current.TryFindResource("MaterialDesignListBox") as Style;
                    if (lbStyle != null)
                    {
                        (control as MahApps.Metro.Controls.SplitButton).ListBoxStyle = lbStyle;
                    }
                }
                else
                {
                    TryApplyMaterialStyle((control as ContentControl));
                }
            }

            control.ApplyTemplate();
        }