private ImageView closeIcon;
private ImageView leftCornerIcon;
+ private static Size2D IconSize = new Size2D(48, 48);
+ private const int BorderThickness = 6;
+ private const int BottomViewHeight = 48;
+ private const int BorderCornerRadius = 24;
+
public event Action CloseClicked;
public CustomBorder() : base()
{
- BorderLineThickness = 0;
ResizePolicy = Window.BorderResizePolicyType.Free;
MinSize = new Size2D(320, 280).SpToPx();
}
return false;
}
this.bottomView = bottomView;
+
bottomView.Layout = new RelativeLayout();
+ bottomView.HeightSpecification = BottomViewHeight.SpToPx();
minimalizeIcon = new ImageView()
{
+ Size2D = IconSize.SpToPx(),
ResourceUrl = MinimalizeIcon,
AccessibilityHighlightable = true,
};
maximalizeIcon = new ImageView()
{
+ Size2D = IconSize.SpToPx(),
ResourceUrl = MaximalizeIcon,
AccessibilityHighlightable = true,
};
closeIcon = new ImageView()
{
+ Size2D = IconSize.SpToPx(),
ResourceUrl = CloseIcon,
AccessibilityHighlightable = true,
};
leftCornerIcon = new ImageView()
{
+ Size2D = IconSize.SpToPx(),
ResourceUrl = LeftCornerIcon,
AccessibilityHighlightable = true,
};
public override void CreateBorderView(View borderView)
{
this.borderView = borderView;
- borderView.CornerRadius = new Vector4(0.03f, 0.03f, 0.03f, 0.03f);
- borderView.CornerRadiusPolicy = VisualTransformPolicyType.Relative;
+
+ BorderLineThickness = (uint)BorderThickness.SpToPx();
borderView.BackgroundColor = borderBackgroundColor;
}
public override void OnCreated(View borderView)
{
base.OnCreated(borderView);
- UpdateIcons();
+ UpdateView();
}
public override bool OnCloseIconTouched(object sender, View.TouchEventArgs e)
{
if (borderView != null)
{
- borderView.BackgroundColor = borderBackgroundColor;
base.OnResized(width, height);
- UpdateIcons();
+
+ borderView.BackgroundColor = borderBackgroundColor;
+ UpdateView();
}
}
- private void UpdateIcons()
+ private void UpdateView()
{
- if (BorderWindow != null && borderView != null)
+ if (BorderWindow != null && borderView != null && maximalizeIcon != null)
{
+ // CornerRadious needed to be set in the OnResized to get effect properly
+ borderView.CornerRadiusPolicy = VisualTransformPolicyType.Absolute;
+ borderView.CornerRadius = BorderCornerRadius.SpToPx();
+
if (BorderWindow.IsMaximized() == true)
{
- if (maximalizeIcon != null)
- {
- maximalizeIcon.ResourceUrl = RestoreIcon;
- }
+ maximalizeIcon.ResourceUrl = RestoreIcon;
}
else
{
- if (maximalizeIcon != null)
- {
- maximalizeIcon.ResourceUrl = MaximalizeIcon;
- }
+ maximalizeIcon.ResourceUrl = MaximalizeIcon;
}
}
}