增加Bar可添加TitleStyle组件支持

This commit is contained in:
monitor1394
2025-03-18 08:18:22 +08:00
parent 47caaa2113
commit 4ad4505720
3 changed files with 13 additions and 3 deletions

View File

@@ -80,6 +80,7 @@ slug: /changelog
## master ## master
* (2025.03.18) 增加`Bar`可添加`TitleStyle`组件支持
* (2025.03.18) 增加`LabelStyle``fixedX``fixedY`可固定label的坐标 * (2025.03.18) 增加`LabelStyle``fixedX``fixedY`可固定label的坐标
* (2025.03.17) 增加`ItemStyle``backgroundGap`可设置数据项背景间隙 * (2025.03.17) 增加`ItemStyle``backgroundGap`可设置数据项背景间隙

View File

@@ -8,8 +8,8 @@ namespace XCharts.Runtime
[CoordOptions(typeof(GridCoord), typeof(PolarCoord))] [CoordOptions(typeof(GridCoord), typeof(PolarCoord))]
[DefaultAnimation(AnimationType.BottomToTop)] [DefaultAnimation(AnimationType.BottomToTop)]
[DefaultTooltip(Tooltip.Type.Shadow, Tooltip.Trigger.Axis)] [DefaultTooltip(Tooltip.Type.Shadow, Tooltip.Trigger.Axis)]
[SerieComponent(typeof(LabelStyle), typeof(EmphasisStyle), typeof(BlurStyle), typeof(SelectStyle))] [SerieComponent(typeof(TitleStyle), typeof(LabelStyle), typeof(EmphasisStyle), typeof(BlurStyle), typeof(SelectStyle))]
[SerieDataComponent(typeof(ItemStyle), typeof(LabelStyle), typeof(EmphasisStyle), typeof(BlurStyle), typeof(SelectStyle))] [SerieDataComponent(typeof(ItemStyle), typeof(TitleStyle), typeof(LabelStyle), typeof(EmphasisStyle), typeof(BlurStyle), typeof(SelectStyle))]
[SerieDataExtraField("m_Ignore")] [SerieDataExtraField("m_Ignore")]
public class Bar : Serie, INeedSerieContainer public class Bar : Serie, INeedSerieContainer
{ {

View File

@@ -47,12 +47,14 @@ namespace XCharts.Runtime
{ {
switch (label.position) switch (label.position)
{ {
case LabelStyle.Position.Start:
case LabelStyle.Position.Bottom: case LabelStyle.Position.Bottom:
var center = serieData.context.areaCenter; var center = serieData.context.areaCenter;
var angle = serieData.context.halfAngle; var angle = serieData.context.halfAngle;
var radius = serieData.context.insideRadius; var radius = serieData.context.insideRadius;
return ChartHelper.GetPosition(center, angle, radius); return ChartHelper.GetPosition(center, angle, radius);
case LabelStyle.Position.Top: case LabelStyle.Position.Top:
case LabelStyle.Position.End:
center = serieData.context.areaCenter; center = serieData.context.areaCenter;
angle = serieData.context.halfAngle; angle = serieData.context.halfAngle;
radius = serieData.context.outsideRadius; radius = serieData.context.outsideRadius;
@@ -65,6 +67,7 @@ namespace XCharts.Runtime
{ {
switch (label.position) switch (label.position)
{ {
case LabelStyle.Position.Start:
case LabelStyle.Position.Bottom: case LabelStyle.Position.Bottom:
var center = serieData.context.rect.center; var center = serieData.context.rect.center;
if (serie.context.isHorizontal) if (serie.context.isHorizontal)
@@ -73,6 +76,7 @@ namespace XCharts.Runtime
return new Vector3(center.x, center.y - serieData.context.rect.height / 2); return new Vector3(center.x, center.y - serieData.context.rect.height / 2);
case LabelStyle.Position.Center: case LabelStyle.Position.Center:
case LabelStyle.Position.Inside: case LabelStyle.Position.Inside:
case LabelStyle.Position.Middle:
return serieData.context.rect.center; return serieData.context.rect.center;
default: default:
return serieData.context.position; return serieData.context.position;
@@ -80,6 +84,11 @@ namespace XCharts.Runtime
} }
} }
public override Vector3 GetSerieDataTitlePosition(SerieData serieData, TitleStyle titleStyle)
{
return GetSerieDataLabelPosition(serieData, titleStyle);
}
private void UpdateSerieGridContext() private void UpdateSerieGridContext()
{ {
if (m_SerieGrid == null) if (m_SerieGrid == null)