Как узнать фактический размер легенды диаграммы в LiveCharts? - PullRequest
0 голосов
/ 06 ноября 2019

Ну, краткий рассказ о том, почему я хочу знать это: сначала я хотел просто создать прокручиваемую диаграмму строк, поэтому я поместил ее в ScrollViewer, но проблема заключалась в том, что высота холста диаграммы всегда устанавливается навысота окна, в котором оно расположено, и с большими объемами данных диаграмма сжимается, так что вы больше не видите строк на холсте. Поэтому я решил установить высоту диаграммы на некоторую константу, умноженную на количество строк в коде, и это работало некоторое время, пока у меня не возникла необходимость показать большую диаграмму с большим количеством серий, поэтому легенда диаграммы стала слишком большой, и я обнаружил, чточто он также включен в высоту элемента управления диаграммы, и я не принимаю это во внимание, когда я устанавливаю высоту из кода, и это приводит к некоторым неожиданным вещам.

Теперь я хочу знать высотулегенды диаграммы, чтобы я мог принять это во внимание при расчете высоты диаграммы.

На самом деле, я был бы очень признателен, если бы вы могли помочь на любом другом этапе моей истории, например, возможно, есть более простые способы сделатьпрокручиваемый график или, возможно, я что-то не так сделал в XAML.

Извините за мой английский, если я допустил ошибки. А еще я очень ненавижу времена в английском и не знаю, где мне следует использовать настоящее совершенное, смеется.

<ScrollViewer>
    <lvc:CartesianChart Series="{Binding SeriesCollection}" Height="{Binding ChartHeight}"  Margin="0 10 10 0"
                            Zoom="X" DisableAnimations="True" LegendLocation="Top" VerticalAlignment="Top">
        <lvc:CartesianChart.DataTooltip>
            <lvc:DefaultTooltip SelectionMode="SharedYValues"></lvc:DefaultTooltip>
        </lvc:CartesianChart.DataTooltip>
        <lvc:CartesianChart.AxisX>
            <lvc:Axis Margin="0 10" Position="RightTop" RangeChangedCommand="{Binding XAxisRangeChangedCommand}" Foreground="{StaticResource DarkBrush}"/>
        </lvc:CartesianChart.AxisX>
        <lvc:CartesianChart.AxisY>
            <lvc:Axis Title="XTools" Labels="{Binding Labels}" Foreground="{StaticResource UltraDarkBrush}">
                <lvc:Axis.Separator>
                    <lvc:Separator Step="1"/>
                </lvc:Axis.Separator>
            </lvc:Axis>
        </lvc:CartesianChart.AxisY>
    </lvc:CartesianChart>
</ScrollViewer>

...