}
set
{
- // Store ResizePolicy to restore it when Layout is unset.
- widthResizePolicy = value;
-
SetValue(WidthResizePolicyProperty, value);
NotifyPropertyChanged();
}
}
set
{
- // Store ResizePolicy to restore it when Layout is unset.
- heightResizePolicy = value;
-
SetValue(HeightResizePolicyProperty, value);
NotifyPropertyChanged();
}
}
set
{
- // ResizePolicy is restored when Layout is unset and it is considered when View size is calculated.
- // SetValue(LayoutProperty, value) sets InternalLayout only if layout is not null.
- if (value == null)
- {
- RestoreResizePolicy();
- }
-
SetValue(LayoutProperty, value);
}
}
public partial class View
{
private MergedStyle mergedStyle = null;
-
- // Ignore WidthResizePolicy and HeightResizePolicy when Layout is set.
- // Restore WidthResizePolicy and HeightResizePolicy when Layout is unset.
- // See also IgnoreResizePolicy() and RestoreResizePolicy().
- private ResizePolicyType widthResizePolicy = ResizePolicyType.Fixed;
- private ResizePolicyType heightResizePolicy = ResizePolicyType.Fixed;
- private bool isIgnoredResizePolicy = false;
-
internal string styleName;
internal MergedStyle MergedStyle
internal void SetLayout(LayoutItem layout)
{
- // ResizePolicy is restored when Layout is unset and it is considered when View size is calculated.
- if (layout == null)
- {
- RestoreResizePolicy();
- }
- // ResizePolicy is stored when Layout is set and it is ignored when View size is calculated.
- else
- {
- IgnoreResizePolicy();
- }
-
Window.Instance.LayoutController.CreateProcessCallback();
this.layout = layout;
this.layout?.AttachToOwner(this);
/// </summary>
internal void ResetLayout()
{
- // ResizePolicy is restored when Layout is unset and it is considered when View size is calculated.
- RestoreResizePolicy();
layout = null;
}
return themeData.selectorData ?? (themeData.selectorData = new ViewSelectorData());
}
-
- // ResizePolicy is stored when Layout is set and it is ignored when View size is calculated.
- private void IgnoreResizePolicy()
- {
- if (isIgnoredResizePolicy) return;
- isIgnoredResizePolicy = true;
-
- widthResizePolicy = WidthResizePolicy;
- heightResizePolicy = HeightResizePolicy;
-
- // Set bindable property directly not to store width/heightResizePolicy duplicately.
- SetValue(WidthResizePolicyProperty, ResizePolicyType.Fixed);
- SetValue(HeightResizePolicyProperty, ResizePolicyType.Fixed);
- NotifyPropertyChanged();
- }
-
- // ResizePolicy is restored when Layout is unset and it is considered when View size is calculated.
- private void RestoreResizePolicy()
- {
- if (!isIgnoredResizePolicy) return;
- isIgnoredResizePolicy = false;
-
- // Set bindable property directly not to store width/heightResizePolicy duplicately.
- SetValue(WidthResizePolicyProperty, widthResizePolicy);
- SetValue(HeightResizePolicyProperty, heightResizePolicy);
- NotifyPropertyChanged();
- }
}
}