{
private MergedStyle mergedStyle = null;
private ViewSelectorData selectorData;
- private uint lastThemeChangeId;
internal string styleName;
internal MergedStyle _mergedStyle
internal void UpdateStyle()
{
- lastThemeChangeId = ThemeManager.ChangeId;
-
ViewStyle newStyle;
if (styleName == null) newStyle = ThemeManager.GetStyle(GetType());
else newStyle = ThemeManager.GetStyle(styleName);
//Release your own managed resources here.
//You should release all of your own disposable objects here.
selectorData?.Reset(this);
-
- if (themeChangeSensitive && IsOnWindow)
+ if (themeChangeSensitive)
{
ThemeManager.ThemeChangedInternal -= OnThemeChanged;
}
{
return false;
}
-
- private void OnAddedToWindowInternal(object sender, global::System.EventArgs args)
- {
- if (lastThemeChangeId != ThemeManager.ChangeId)
- {
- OnThemeChanged(null, new ThemeChangedEventArgs(ThemeManager.CurrentTheme?.Id));
- }
- AddedToWindow -= OnAddedToWindowInternal;
- RemovedFromWindow += OnRemovedFromWindowInternal;
- ThemeManager.ThemeChangedInternal += OnThemeChanged;
- }
-
- private void OnRemovedFromWindowInternal(object sender, global::System.EventArgs args)
- {
- ThemeManager.ThemeChangedInternal -= OnThemeChanged;
- RemovedFromWindow -= OnRemovedFromWindowInternal;
- AddedToWindow += OnAddedToWindowInternal;
- }
-
- private void SubscribeThemeChange()
- {
- if (IsOnWindow)
- {
- ThemeManager.ThemeChangedInternal += OnThemeChanged;
- RemovedFromWindow += OnRemovedFromWindowInternal;
- }
- else
- {
- AddedToWindow += OnAddedToWindowInternal;
- }
- }
-
- private void UnsubscribeThemeChange()
- {
- if (IsOnWindow)
- {
- ThemeManager.ThemeChangedInternal -= OnThemeChanged;
- RemovedFromWindow -= OnRemovedFromWindowInternal;
- }
- else
- {
- AddedToWindow -= OnAddedToWindowInternal;
- }
- }
}
}