예제 #1
0
파일: Button.cs 프로젝트: thecliguy/NSCI
        static Button()
        {
            Template.SetDefaultControlTemplate(Template.CreateControlTemplate((Button b) =>
            {
                var outerBorder = new Border
                {
                    Foreground = ConsoleColor.Gray
                };

                var innerBorder = new Border()
                {
                    BorderStyle = BorderStyle.SingelLined, Background = ConsoleColor.DarkRed
                };
                outerBorder.Child = innerBorder;

                var contentPresenter = new ContentPresenter()
                {
                    HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center
                };
                innerBorder.Child = contentPresenter;

                Border.ForegroundProperty.Bind(innerBorder as FrameworkElement, HasFocusProperty.Of(b).ConvertOneWay(state => state ? ConsoleColor.Yellow : ConsoleColor.White));

                //Border.BackgroundProperty.Bind(innerBorder as FrameworkElement, Button.IsPressedProperty.Of(b).ConvertOneWay(state => state ? ConsoleColor.Red : ConsoleColor.DarkRed));
                Border.PaddingProperty.Bind(outerBorder as FrameworkElement, Button.IsPressedProperty.Of(b).ConvertOneWay(state => state ? new Thickness(2, 2, 0, 0) : new Thickness(1, 1, 0, 0)));
                Border.BorderStyleProperty.Bind(outerBorder, Button.IsPressedProperty.Of(b).ConvertOneWay(state => state ? BorderStyle.None : BorderStyle.DropShadowLight));


                return(outerBorder);
            }));
        }
예제 #2
0
        void Detach()
        {
            _textProperty.Detach(OnTextChanged);
            _isPasswordProperty.Detach(OnTextChanged);
            _internalTextProperty.Detach(OnInternalTextChanged);
            _caretIndexProperty.Detach(OnCaretIndexChanged);
            _colorProperty.Detach(OnColorChanged);
            _preferredTextLengthProperty.Detach(OnCompleteLayoutGetsInvalid);

            HasFocusProperty.Detach(OnHasFocusChanged);
            FontFamilyProperty.Detach(OnFontChanged);
            FontSizeProperty.Detach(OnFontChanged);
        }