Skip to content

Прокрутка и масштабирование контрола диаграммы

Контрол CartesianChart поддерживает операции прокрутки и масштабирования для всего вида и отдельных осей. Пользователь может масштабировать и прокручивать диаграмму с помощью мыши и клавиатуры. В коде эти операции доступны через определенный API.

Разрешить операции прокрутки и масштабирования

Операции прокрутки и масштабирования включены по умолчанию. Следующие опции позволяют отключить эти операции для отдельных осей:

  • Axis.EnableZooming
  • Axis.EnableScrolling

<mxc:CartesianChart.AxesX>
    <mxc:AxisX ShowTitle="False" EnableScrolling="False" EnableZooming="False" />
</mxc:CartesianChart.AxesX>
chartControl1.AxesX[0].EnableZooming = false;

Минимальные границы масштабирования контрола диаграммы предотвращают слишком большое уменьшение масштаба и, таким образом, делают изображение слишком маленьким. Общие диапазоны осей определяют минимальные границы масштабирования. Чтобы указать общий диапазон осей, используйте свойства WholeMin и WholeMax объектов AxisX.Range/AxisY.Range.

<mxc:CartesianChart.AxesY>
    <mxc:AxisY ShowTitle="False">
        <mxc:AxisYRange WholeMin="100" WholeMax="200" AutoCorrectWholeRange="False" AlwaysShowZeroLevel="True" />
    </mxc:AxisY>
</mxc:CartesianChart.AxesY>

Дополнительную информацию смотрите в следующем разделе: Диапазон значений оси

Прокрутка и масштабирование по пользователям

Одновременная прокрутка по всем осям

  • Перетащите область диаграммы с помощью мыши

    или

  • Нажмите Ctrl+клавиши со стрелками для прокрутки с помощью клавиатуры.

Одновременное масштабирование по всем осям

  • Прокрутите колесико мыши по области диаграммы

    или

  • Нажмите Ctrl+"+", чтобы увеличить изображение, и Ctrl+"-", чтобы уменьшить масштаб.

chart-zoom-and-scroll-all-series.gif

Прокрутка по отдельной оси

  • Перетащите курсор мыши в пределах соответствующей области оси.

Масштабирование отдельной оси

  • Прокрутите колесико мыши в пределах соответствующей области оси.

chart-zoom-and-scroll-individual-series.gif

Увеличение масштаба в определенном регионе

  • Нажмите и удерживайте клавишу SHIFT в области диаграммы, а затем перетащите курсор, чтобы выделить нужный прямоугольник.

Увеличение диапазона значений на оси

  • Нажмите и удерживайте клавишу SHIFT в области оси, а затем перетащите курсор, чтобы выбрать нужный диапазон.

chart-zoom-into-rectangle

Прокрутка и увеличение кода

Сделайте видимой определенную часть данных

Чтобы увидеть определенную часть данных в окне просмотра контрола, настройте видимый диапазон осей контрола диаграммы. Используйте свойства VisualMin и VisualMax объектов AxisX.Range/AxisY.Range, чтобы указать диапазон значений для области просмотра.

chartControl1.AxesX[0].Range.VisualMin = 10;
chartControl1.AxesX[0].Range.VisualMax = 20;
chartControl1.AxesY[0].Range.VisualMin = -50;
chartControl1.AxesY[0].Range.VisualMax = 50;

Имитировать пользовательскую операцию прокрутки в коде

Используйте метод CartesianChart.Scroll для прокрутки последовательных данных по определенным осям или по всем осям одновременно. Этот метод имитирует операцию прокрутки, выполняемую пользователями.

Подпись метода показана ниже:

public void Scroll(double deltaX, double deltaY, IEnumerable<Axis>? axes = null)
  • deltaX — Указывает количество пикселей для прокрутки вдоль горизонтальной оси (осей). Положительные значения соответствуют прокрутке вправо; отрицательные значения соответствуют прокрутке влево.
  • deltaY — Определяет количество пикселей для прокрутки вдоль вертикальной оси (осей). Положительные значения соответствуют прокрутке вверх; отрицательные значения соответствуют прокрутке вниз.
  • axes — Оси, по которым выполняется прокрутка видового экрана. Если этот параметр опущен, видовой экран прокручивается по всем осям одновременно.
//Scroll along all X axes horizontally by 10 units
chartControl1.Scroll(10, 0);

//Scroll along all Y axes vertically by 10 units
chartControl1.Scroll(0, 10);

//Scroll along the first X axis
AxisX axisX = chartControl1.AxesX[0];
chartControl1.Scroll(10, 0, new[] { axisX });

Имитировать пользовательскую операцию масштабирования в коде

Используйте метод CartesianChart.Zoom для масштабирования данных серии по определенным осям или по всем осям одновременно. Этот метод имитирует операции масштабирования, выполняемые пользователями.

Подпись метода показана ниже:

public void Zoom(double delta, IEnumerable<Axis>? axes = null)
  • delta — Указывает количество операций прокрутки колесика мыши вверх/вниз. Это значение определяет коэффициент масштабирования.

    • Положительные значения соответствуют операциям прокрутки колесика мыши вверх (увеличения масштаба). Значение 1 соответствует однократному действию прокрутки вверх.
    • Отрицательные значения соответствуют операциям прокрутки колесика мыши вниз (уменьшения масштаба). Значение -1 соответствует однократному действию прокрутки вниз.
  • axes — Оси, по которым следует масштабировать видовой экран. Если этот параметр опущен, видовой экран масштабируется по всем осям одновременно.

//Zoom in (imitate a single scroll up action)
chartControl1.Zoom(1);

//Zoom out (imitate a single scroll down action)
chartControl1.Zoom(-1);



* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.