mac
2024-07-25 3f6685c77beeb12baf840733fb890860f4c26e7c
HDL_ON/UI/UI2/FuntionControlView/Aks/CommonView/TypeSingleFramLayout.cs
@@ -10,6 +10,8 @@
        /// 是否可以点击
        /// </summary>
        private bool mIsClick = true;
        private uint UpBackgroundColor = BaseFramLayout.unParentBackgroundColor;
        private uint DownBackgroundColor = BaseFramLayout.seleBackgroundColor;
        /// <summary>
        /// 设置控制点击事件
@@ -19,8 +21,7 @@
        {
            this.mIsClick = isClick;
        }
        private uint UpBackgroundColor = MusicColor.ViewColor;
        private uint DownBackgroundColor = AksCommonMethod.seleBackgroundColor;
        /// <summary>
        /// 单个类型容器
        /// </summary>
@@ -53,8 +54,7 @@
            TextColor = MusicColor.TextColor,
            TextAlignment = TextAlignment.Center,
            Gravity = Gravity.CenterVertical,
            IsMoreLines = true,
            Padding=new Padding(0,0,0,0),
            Padding = new Padding(0, 0, 0, 0),
            Name = "btnName",
        };
@@ -114,12 +114,70 @@
            {
                //按下去改变背景颜色
                //singleFramLayout.BackgroundColor = this.DownBackgroundColor;
            };
            singleFramLayout.MouseDownEventHandler += DownClick;
            btnLeftImage.MouseDownEventHandler += DownClick;
            btnName.MouseDownEventHandler += DownClick;
            btnRightImage.MouseDownEventHandler += DownClick;
        }
        /// <summary>
        /// 自动计算控件长度
        /// </summary>
        /// <param name="orientation">位置(左或右)</param>
        /// <param name="frame">父容器</param>
        /// <param name="btnName">备注控件</param>
        /// <param name="btnImage">图标备注控件</param>
        /// <param name="btnNameWidth">备注控件宽度</param>
        /// <param name="btnNameWidthMaxValue">备注控件宽度最大值</param>
        /// <param name="parentDefaultWidthMaxValue">父控件宽度默认最大值</param>
        public void CustomCalculationWidth(Orientation orientation, FrameLayout frame, Button btnName, Button btnImage, int btnNameWidth,int btnNameWidthMaxValue = 110, int parentDefaultWidthMaxValue = 101)
        {
            int parentRightX = 226;
            int parentLeftX = 16;
            if (btnName.GetTextWidth() > Application.GetRealWidth(btnNameWidth))
            {
                frame.Width = Application.GetRealWidth(parentDefaultWidthMaxValue - btnNameWidth) + btnName.GetTextWidth();
                if (orientation == Orientation.right)
                {
                    frame.X = Application.GetRealWidth(parentRightX + btnNameWidth) - btnName.GetTextWidth();
                }
                else if (orientation == Orientation.left)
                {
                    frame.X = Application.GetRealWidth(parentLeftX);
                }
                btnName.Width = btnName.GetTextWidth();
                btnImage.X = btnName.Right + Application.GetRealWidth(8);
            }
            if (btnName.GetTextWidth() > Application.GetRealWidth(btnNameWidthMaxValue))
            {
                btnName.Width = Application.GetRealWidth(btnNameWidthMaxValue);
                if (orientation == Orientation.right)
                {
                    frame.X =Application.GetRealWidth(parentRightX+ btnNameWidth) - btnName.Width;
                }
                else if (orientation == Orientation.left)
                {
                    frame.X = Application.GetRealWidth(parentLeftX);
                }
                frame.Width = Application.GetRealWidth(parentDefaultWidthMaxValue - btnNameWidth) + btnName.Width;
                btnImage.X = btnName.Right + Application.GetRealWidth(8);
            }
        }
        public enum Orientation
        {
            left,
            right,
        }
    }
}