Forge
csharp4405de34
1using Avalonia.Controls;
2using Avalonia.VisualTree;
3using CascadeIDE.Features.WorkspaceNavigation.Presentation;
4using CascadeIDE.ViewModels;
5
6namespace CascadeIDE.Views;
7
8public partial class WorkspaceNavigationMapView : UserControl
9{
10 public WorkspaceNavigationMapView()
11 {
12 InitializeComponent();
13 Loaded += OnLoaded;
14 }
15
16 private void OnLoaded(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
17 {
18 Loaded -= OnLoaded;
19 if (CodeNavigationMapMiniMap is null)
20 return;
21 CodeNavigationMapMiniMap.SizeChanged += OnCodeNavigationMapMiniMapSizeChanged;
22 PushViewportWidth(CodeNavigationMapMiniMap);
23 }
24
25 private void OnCodeNavigationMapMiniMapSizeChanged(object? sender, SizeChangedEventArgs e)
26 {
27 if (sender is Control c)
28 PushViewportWidth(c);
29 }
30
31 private void PushViewportWidth(Control miniMap)
32 {
33 if (DataContext is not WorkspaceNavigationMapViewModel map)
34 return;
35
36 var w = miniMap.Bounds.Width;
37 if (w > 0)
38 map.NotifyCodeNavigationMapGraphViewportWidthChanged(w);
39 }
40}
41
View only · write via MCP/CIDE