private void Initialize() { #if NETFX4 // NOTE: Lack of contracts: SystemParameters2.Current must ensure non-null value Contract.Assume(SystemParameters2.Current != null); #endif _chrome = new WindowChrome { #if NETFX4 CaptionHeight = SystemParameters2.Current.WindowCaptionHeight, #elif NETFX45 CaptionHeight = SystemParameters.WindowCaptionHeight, #endif CornerRadius = new CornerRadius(0d), GlassFrameThickness = new Thickness(0d), NonClientFrameEdges = NonClientFrameEdges.None, ResizeBorderThickness = Parameters.Window.GetResizeBorderThickness(this), UseAeroCaptionButtons = false }; _chrome.TryFreeze(); if (WindowChrome.GetWindowChrome(this) == null) { WindowChrome.SetWindowChrome(this, _chrome); } Initialized += OnInitializedInternal; Loaded += OnLoadedInternal; var resizeBorderThicknessPropertyDescriptor = DependencyPropertyDescriptor.FromProperty(Parameters.Window.ResizeBorderThicknessProperty, typeof(Window)); if (resizeBorderThicknessPropertyDescriptor != null) { resizeBorderThicknessPropertyDescriptor.AddValueChanged(this, OnResizeBorderThicknessChanged); } }
private void OnResizeBorderThicknessChanged(object sender, EventArgs e) { if (Equals(WindowChrome.GetWindowChrome(this), _chrome)) { _chrome = new WindowChrome { CaptionHeight = _chrome.CaptionHeight, CornerRadius = _chrome.CornerRadius, GlassFrameThickness = _chrome.GlassFrameThickness, NonClientFrameEdges = _chrome.NonClientFrameEdges, ResizeBorderThickness = Parameters.Window.GetResizeBorderThickness(this), UseAeroCaptionButtons = _chrome.UseAeroCaptionButtons }; _chrome.TryFreeze(); WindowChrome.SetWindowChrome(this, _chrome); } }
private void OnCaptionSizeChanged(object sender, SizeChangedEventArgs e) { if (e.HeightChanged && Equals(WindowChrome.GetWindowChrome(this), _chrome)) { _chrome = new WindowChrome { CaptionHeight = e.NewSize.Height, CornerRadius = _chrome.CornerRadius, GlassFrameThickness = _chrome.GlassFrameThickness, NonClientFrameEdges = _chrome.NonClientFrameEdges, ResizeBorderThickness = _chrome.ResizeBorderThickness, UseAeroCaptionButtons = _chrome.UseAeroCaptionButtons }; _chrome.TryFreeze(); WindowChrome.SetWindowChrome(this, _chrome); } }
private void OnHasDropShadowChangedInternal(bool newHasDropShadow) { if (Equals(WindowChrome.GetWindowChrome(this), _chrome)) { _chrome = new WindowChrome { CaptionHeight = _chrome.CaptionHeight, CornerRadius = _chrome.CornerRadius, GlassFrameThickness = !newHasDropShadow ? new Thickness(0d) : new Thickness(0d, 0d, 0d, 1d), NonClientFrameEdges = _chrome.NonClientFrameEdges, ResizeBorderThickness = _chrome.ResizeBorderThickness, UseAeroCaptionButtons = _chrome.UseAeroCaptionButtons }; _chrome.TryFreeze(); WindowChrome.SetWindowChrome(this, _chrome); } }