Skip to main content
.NET Framework Class Library
FrameworkElementOnStyleChanged Method

Invoked when the style in use on this element changes, which will invalidate the layout.

Namespace:   System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)
Protected Friend Overridable Sub OnStyleChanged ( _
	oldStyle As [%$TOPIC/ms598251_en-us_VS_110_1_0_0_0_0%], _
	newStyle As [%$TOPIC/ms598251_en-us_VS_110_1_0_0_0_1%] _
protected internal virtual void OnStyleChanged(
	[%$TOPIC/ms598251_en-us_VS_110_1_0_1_0_0%] oldStyle,
	[%$TOPIC/ms598251_en-us_VS_110_1_0_1_0_1%] newStyle
protected public:
virtual void OnStyleChanged(
	[%$TOPIC/ms598251_en-us_VS_110_1_0_2_0_0%]^ oldStyle, 
	[%$TOPIC/ms598251_en-us_VS_110_1_0_2_0_1%]^ newStyle
abstract OnStyleChanged : 
        oldStyle:[%$TOPIC/ms598251_en-us_VS_110_1_0_3_0_0%] * 
        newStyle:[%$TOPIC/ms598251_en-us_VS_110_1_0_3_0_1%] -> unit  
override OnStyleChanged : 
        oldStyle:[%$TOPIC/ms598251_en-us_VS_110_1_0_3_0_2%] * 
        newStyle:[%$TOPIC/ms598251_en-us_VS_110_1_0_3_0_3%] -> unit


Type: System.WindowsStyle

The old style.

Type: System.WindowsStyle

The new style.


This method has a default implementation that sets an internal flag that notes the style changed condition.

Notes to Inheritors

You should not typically have to override this method. Any change to a style that involves a measure or arrange change would already trigger another render cycle, assuming a typical implementation of ArrangeOverride / MeasureOverride, or the defaults. Overrides of OnStyleChanged might be appropriate if your ArrangeOverride / MeasureOverride implementations were deliberately optimizing or supporting partial updates, but still wanted to apply changes to styles more directly. (The partial updates would be an attempt to avoid multiple incremental calls to Measure and Arrange on any child elements).

Version Information

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.