This commit is contained in:
GukSang.Jin
2026-05-11 11:46:11 +08:00
parent 808ef94b91
commit eb4ee774d6
2 changed files with 48 additions and 2 deletions

View File

@@ -790,7 +790,8 @@
BorderThickness="1"
CornerRadius="10"
Padding="6">
<lvc:CartesianChart Series="{Binding ForceSeries}"
<lvc:CartesianChart x:Name="RealtimeForceChart"
Series="{Binding ForceSeries}"
XAxes="{Binding ForceXAxes}"
YAxes="{Binding ForceYAxes}"
Sections="{Binding ForceSections}"
@@ -799,7 +800,9 @@
TooltipPosition="Hidden"
AnimationsSpeed="0:0:0"
EasingFunction="{x:Null}"
DrawMarginFrame="{x:Null}" />
DrawMarginFrame="{x:Null}"
Loaded="RealtimeForceChart_Loaded"
SizeChanged="RealtimeForceChart_SizeChanged" />
</Border>
</Border>
</Grid>

View File

@@ -2,6 +2,7 @@ using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Threading;
using COFTester.ViewModels;
namespace COFTester;
@@ -12,6 +13,7 @@ public partial class MainWindow : Window
private const double CollapsedSidebarWidth = 118;
private readonly MainViewModel _viewModel = new();
private bool _isSidebarCollapsed;
private bool _isRealtimeChartLayoutRefreshQueued;
public MainWindow()
{
@@ -41,6 +43,21 @@ public partial class MainWindow : Window
MainWorkspaceTabs.SelectedIndex = 1;
}
private void RealtimeForceChart_Loaded(object sender, RoutedEventArgs e)
{
QueueRealtimeChartLayoutRefresh();
}
private void RealtimeForceChart_SizeChanged(object sender, SizeChangedEventArgs e)
{
if (e.NewSize.Width <= 0 || e.NewSize.Height <= 0)
{
return;
}
QueueRealtimeChartLayoutRefresh();
}
private void TableMotionButton_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (sender is not Button button || button.Tag is not string direction)
@@ -86,5 +103,31 @@ public partial class MainWindow : Window
SidebarDetails.Visibility = collapsed ? Visibility.Collapsed : Visibility.Visible;
SidebarCollapsedRail.Visibility = collapsed ? Visibility.Visible : Visibility.Collapsed;
SidebarHost.Padding = collapsed ? new Thickness(12) : new Thickness(18, 16, 14, 16);
QueueRealtimeChartLayoutRefresh();
}
private void QueueRealtimeChartLayoutRefresh()
{
if (_isRealtimeChartLayoutRefreshQueued)
{
return;
}
_isRealtimeChartLayoutRefreshQueued = true;
Dispatcher.BeginInvoke(RefreshRealtimeChartLayout, DispatcherPriority.ContextIdle);
}
private void RefreshRealtimeChartLayout()
{
_isRealtimeChartLayoutRefreshQueued = false;
if (RealtimeForceChart.ActualWidth <= 0 || RealtimeForceChart.ActualHeight <= 0)
{
return;
}
RealtimeForceChart.InvalidateMeasure();
RealtimeForceChart.InvalidateArrange();
RealtimeForceChart.UpdateLayout();
}
}