Я обновляю Syncfusion.Maui.Toolkit SfCartesianChart (с ColumnSeries) каждую секунду. Проблема, с которой я столкнулся, заключается в том, что метки по оси слегка перемещаются вверх и вниз (1–2 пикселя) при каждом обновлении.
Я уже исправил диапазон оси Y, установив Минимум, Максимум и Интервал, и в ходе отладки я подтвердил, что область графика (SeriesBounds) вообще не меняет размер — ее ширина и высота остаются постоянными при каждом обновлении. обновление. Таким образом, перемещение не вызвано изменениями макета.
Однако всякий раз, когда значения столбцов обновляются, метки по оси Y по-прежнему кажутся смещающимися по вертикали, хотя диапазон оси фиксирован. Похоже, что слой метки перерисовывается при каждом тике, вызывая небольшое визуальное «дрожание» текста оси. Я тестирую это на компьютере с Windows.
Кто-нибудь сталкивался с этим при использовании диаграмм Syncfusion MAUI Toolkit или нашел надежный способ обеспечить идеальную стабильность меток осей во время частых обновлений?
using SampleApp.Core.ViewModels;
namespace SampleApp.Core.Views;
public partial class LiveChartPage : ContentPage
{
private readonly LiveChartViewModel _vm;
public LiveChartPage()
{
InitializeComponent();
_vm = new LiveChartViewModel();
BindingContext = _vm;
}
protected override void OnAppearing()
{
base.OnAppearing();
_vm.Start(); // Begin 1-second updates
}
protected override void OnDisappearing()
{
_vm.Stop(); // Stop updates when page goes out
base.OnDisappearing();
}
}
public class LiveChartViewModel
{
private readonly IDispatcherTimer _timer;
private int _second = 0;
private readonly Random _rand = new();
public ObservableCollection Points { get; } = new();
public LiveChartViewModel()
{
// Pre-seed if you want (optional)
// Points.Add(new SamplePoint(0, 0));
_timer = Application.Current!.Dispatcher.CreateTimer();
_timer.Interval = TimeSpan.FromSeconds(1);
_timer.Tick += (s, e) => AddNextPoint();
}
private void AddNextPoint()
{
_second++;
// Generate a value between 0 and 1000 (inclusive)
var value = _rand.Next(0, 1001);
Points.Add(new SamplePoint(_second, value));
// (Optional) Keep the last N seconds visible by trimming
// if (Points.Count > 60)
// Points.RemoveAt(0);
}
public void Start() => _timer.Start();
public void Stop() => _timer.Stop();
public void Reset()
{
Stop();
Points.Clear();
_second = 0;
}
}
public record SamplePoint(double Second, double Value);
Подробнее здесь: https://stackoverflow.com/questions/798 ... during-fre
Syncfusion SfCartesianChart (набор инструментов MAUI): метки осей колеблются на 1–2 пикселя во время частых обновлений, ⇐ C#
Место общения программистов C#
1772426465
Anonymous
Я обновляю [b]Syncfusion.Maui.Toolkit SfCartesianChart[/b] (с [b]ColumnSeries[/b]) каждую секунду. Проблема, с которой я столкнулся, заключается в том, что [b]метки по оси слегка перемещаются вверх и вниз (1–2 пикселя)[/b] при каждом обновлении.
Я уже [b]исправил диапазон оси Y[/b], установив [b]Минимум, Максимум и Интервал[/b], и в ходе отладки я подтвердил, что [b]область графика (SeriesBounds) вообще не меняет размер[/b] — ее ширина и высота остаются постоянными при каждом обновлении. обновление. Таким образом, перемещение [b]не вызвано изменениями макета[/b].
Однако всякий раз, когда значения столбцов обновляются, [b]метки по оси Y по-прежнему кажутся смещающимися по вертикали[/b], хотя диапазон оси фиксирован. Похоже, что слой метки перерисовывается при каждом тике, вызывая небольшое визуальное «дрожание» текста оси. Я тестирую это на компьютере с Windows.
Кто-нибудь сталкивался с этим при использовании диаграмм Syncfusion MAUI Toolkit или нашел надежный способ обеспечить идеальную стабильность меток осей во время частых обновлений?
using SampleApp.Core.ViewModels;
namespace SampleApp.Core.Views;
public partial class LiveChartPage : ContentPage
{
private readonly LiveChartViewModel _vm;
public LiveChartPage()
{
InitializeComponent();
_vm = new LiveChartViewModel();
BindingContext = _vm;
}
protected override void OnAppearing()
{
base.OnAppearing();
_vm.Start(); // Begin 1-second updates
}
protected override void OnDisappearing()
{
_vm.Stop(); // Stop updates when page goes out
base.OnDisappearing();
}
}
public class LiveChartViewModel
{
private readonly IDispatcherTimer _timer;
private int _second = 0;
private readonly Random _rand = new();
public ObservableCollection Points { get; } = new();
public LiveChartViewModel()
{
// Pre-seed if you want (optional)
// Points.Add(new SamplePoint(0, 0));
_timer = Application.Current!.Dispatcher.CreateTimer();
_timer.Interval = TimeSpan.FromSeconds(1);
_timer.Tick += (s, e) => AddNextPoint();
}
private void AddNextPoint()
{
_second++;
// Generate a value between 0 and 1000 (inclusive)
var value = _rand.Next(0, 1001);
Points.Add(new SamplePoint(_second, value));
// (Optional) Keep the last N seconds visible by trimming
// if (Points.Count > 60)
// Points.RemoveAt(0);
}
public void Start() => _timer.Start();
public void Stop() => _timer.Stop();
public void Reset()
{
Stop();
Points.Clear();
_second = 0;
}
}
public record SamplePoint(double Second, double Value);
Подробнее здесь: [url]https://stackoverflow.com/questions/79896145/syncfusion-sfcartesianchart-maui-toolkit-axis-labels-jitter-1-2-px-during-fre[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия