using HDL_ON.UI.Music;
|
using System;
|
using Shared;
|
|
namespace HDL_ON.UI.UI2.FuntionControlView.Aks.CommonView
|
{
|
public class TypeSingleFramLayout
|
{
|
/// <summary>
|
/// 是否可以点击
|
/// </summary>
|
private bool mIsClick = true;
|
|
/// <summary>
|
/// 设置控制点击事件
|
/// </summary>
|
/// <param name="isClick">false点击无效</param>
|
public void setClick(bool isClick)
|
{
|
this.mIsClick = isClick;
|
}
|
private uint UpBackgroundColor = MusicColor.ViewColor;
|
private uint DownBackgroundColor = AksCommonMethod.seleBackgroundColor;
|
/// <summary>
|
/// 单个类型容器
|
/// </summary>
|
public FrameLayout singleFramLayout = new FrameLayout
|
{
|
BackgroundColor = MusicColor.ViewColor,
|
//Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(101),
|
Height = Application.GetRealHeight(34),//40
|
Radius = (uint)Application.GetRealHeight(17),
|
};
|
|
public Button btnLeftImage = new Button
|
{
|
X = Application.GetRealWidth(16),
|
Width = Application.GetRealWidth(16),
|
Height = Application.GetRealWidth(16),
|
UnSelectedImagePath = "AksIcon/yingku.png",
|
Gravity = Gravity.CenterVertical,
|
Name = "btnLeftImage",
|
};
|
|
public Button btnName = new Button
|
{
|
|
Width = Application.GetRealWidth(32),
|
Height = Application.GetRealHeight(23),
|
TextID = StringId.yingku,
|
TextSize = TextSize.Text16,
|
TextColor = MusicColor.TextColor,
|
TextAlignment = TextAlignment.Center,
|
Gravity = Gravity.CenterVertical,
|
Padding = new Padding(0, 0, 0, 0),
|
Name = "btnName",
|
};
|
|
public Button btnRightImage = new Button
|
{
|
|
Width = Application.GetRealWidth(5),
|
Height = Application.GetRealWidth(8),
|
UnSelectedImagePath = "AksIcon/yingkunext.png",
|
Gravity = Gravity.CenterVertical,
|
Name = "btnRightImage",
|
};
|
|
|
public void AddView(FrameLayout layout)
|
{
|
layout.AddChidren(singleFramLayout);
|
singleFramLayout.AddChidren(btnLeftImage);
|
singleFramLayout.AddChidren(btnName);
|
singleFramLayout.AddChidren(btnRightImage);
|
btnName.X = btnLeftImage.Right + Application.GetRealWidth(4);
|
btnRightImage.X = btnName.Right + Application.GetRealWidth(8);
|
}
|
|
|
|
public void SetClickUpBackgroundColor(uint backgroundColor)
|
{
|
this.UpBackgroundColor = backgroundColor;
|
|
}
|
|
public void SetClickDownBackgroundColor(uint backgroundColor)
|
{
|
this.DownBackgroundColor = backgroundColor;
|
}
|
|
/// <summary>
|
/// 事件监听方法
|
/// </summary>
|
/// <param name="action">回调(第一个是父类对象;</param>
|
public void SetClickListener(Action<FrameLayout> action)
|
{
|
EventHandler<MouseEventArgs> UpClick = (sender, e) =>
|
{
|
action?.Invoke(singleFramLayout);
|
//singleFramLayout.BackgroundColor = this.UpBackgroundColor;
|
|
//弹起来还原背景颜色
|
};
|
singleFramLayout.MouseUpEventHandler += UpClick;
|
btnLeftImage.MouseUpEventHandler += UpClick;
|
btnName.MouseUpEventHandler += UpClick;
|
btnRightImage.MouseUpEventHandler += UpClick;
|
|
EventHandler<MouseEventArgs> DownClick = (sender, e) =>
|
{
|
//按下去改变背景颜色
|
//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,
|
|
}
|
}
|
}
|