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); })); }
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); }