public override void OnApplyTemplate() { base.OnApplyTemplate(); _dragWidget = (Border)GetTemplateChild("PART_DragWidget"); if (_dragWidget != null) { _dragWidget.AddHandler(UIElement.MouseLeftButtonDownEvent, new MouseButtonEventHandler(HeaderLeftMouseButtonDown), true); _dragWidget.AddHandler(UIElement.MouseLeftButtonUpEvent, new MouseButtonEventHandler(HeaderMouseLeftButtonUp), true); _dragWidget.MouseMove += (o, e) => HeaderMouseMove(e); } CloseButton = (Button)GetTemplateChild("PART_CloseButton"); if (CloseButton != null) CloseButton.Click += (o, e) => Close(); Overlay = GetTemplateChild("PART_Overlay") as Panel; WindowRoot = GetTemplateChild("PART_WindowRoot") as Grid; WindowRoot.RenderTransform = _moveTransform; //TODO: move somewhere else _parent = VisualTreeHelper.GetParent(this) as FrameworkElement; _parent.SizeChanged += (o, ea) => { Overlay.Height = ea.NewSize.Height; Overlay.Width = ea.NewSize.Width; }; ChangeVisualState(); }
public override void OnApplyTemplate() { base.OnApplyTemplate(); if( _dragWidget != null ) { _dragWidget.RemoveHandler( UIElement.MouseLeftButtonDownEvent, new MouseButtonEventHandler( HeaderLeftMouseButtonDown ) ); _dragWidget.RemoveHandler( UIElement.MouseLeftButtonUpEvent, new MouseButtonEventHandler( HeaderMouseLeftButtonUp ) ); _dragWidget.MouseMove -= ( o, e ) => HeaderMouseMove( e ); } _dragWidget = GetTemplateChild( "PART_DragWidget" ) as Border; if( _dragWidget != null ) { _dragWidget.AddHandler( UIElement.MouseLeftButtonDownEvent, new MouseButtonEventHandler( HeaderLeftMouseButtonDown ), true ); _dragWidget.AddHandler( UIElement.MouseLeftButtonUpEvent, new MouseButtonEventHandler( HeaderMouseLeftButtonUp ), true ); _dragWidget.MouseMove += ( o, e ) => HeaderMouseMove( e ); } if( CloseButton != null ) CloseButton.Click -= ( o, e ) => Close(); CloseButton = GetTemplateChild( "PART_CloseButton" ) as Button; if( CloseButton != null ) CloseButton.Click += ( o, e ) => Close(); WindowRoot = GetTemplateChild( "PART_WindowRoot" ) as Grid; WindowRoot.RenderTransform = _moveTransform; _parentContainer = VisualTreeHelper.GetParent( this ) as FrameworkElement; _parentContainer.LayoutUpdated += ParentContainer_LayoutUpdated; _parentContainer.SizeChanged += ParentContainer_SizeChanged; //initialize our modal background width/height _modalLayer.Height = _parentContainer.ActualHeight; _modalLayer.Width = _parentContainer.ActualWidth; //this is for XBAP applications only. When inside an XBAP the parent container has no height or width until it has loaded. Therefore //we need to handle the loaded event and reposition the window. if( System.Windows.Interop.BrowserInteropHelper.IsBrowserHosted ) { _parentContainer.Loaded += ( o, e ) => { ExecuteOpen(); }; } _root = GetTemplateChild( "Root" ) as Grid; #if VS2008 FocusVisualStyle = null; #else Style focusStyle = _root.Resources[ "FocusVisualStyle" ] as Style; if( focusStyle != null ) { Setter focusStyleDataContext = new Setter( Control.DataContextProperty, this ); focusStyle.Setters.Add( focusStyleDataContext ); FocusVisualStyle = focusStyle; } #endif _root.Children.Add( _modalLayerPanel ); }
public override void OnApplyTemplate() { if (IsInDesignMode) return; if (this.Header == null) { var dictionary = Application.LoadComponent(new Uri("/SharedUI;component/Controls/Flyouts/FlyoutMessageBar.xaml", UriKind.Relative)) as ResourceDictionary; if (dictionary != null && dictionary.Contains("FlyoutMessageBarDefaultHeader")) { this.Header = dictionary["FlyoutMessageBarDefaultHeader"]; } } var closeImage = this.GetTemplateChild("PART_CloseImage") as Image; if (closeImage != null) { closeImage.AddHandler(Image.MouseEnterEvent, new MouseEventHandler(this.OnCloseMouseEnter)); closeImage.AddHandler(Image.MouseLeaveEvent, new MouseEventHandler(this.OnCloseMouseLeave)); closeImage.AddHandler(Image.MouseLeftButtonDownEvent, new MouseButtonEventHandler(this.OnCloseMouseDown)); closeImage.AddHandler(Image.MouseLeftButtonUpEvent, new MouseButtonEventHandler(this.OnCloseMouseUp)); } _border = this.GetTemplateChild("border") as Border; if (_border != null) { _border.AddHandler(Border.MouseLeftButtonUpEvent, new MouseButtonEventHandler(this.OnMouseUp)); } _openAnimation = this.GetTemplateChild("openAnimation") as DoubleAnimation; _closeAnimation = this.GetTemplateChild("closeAnimation") as DoubleAnimation; this.SetTransformationDirection(); this.SetGeometry(); }