livia-test/Livia/Views/Controls/RoiExpanderControl.xaml.cs
2025-03-28 14:31:53 +08:00

58 lines
1.8 KiB
C#

using System.Windows;
using CommunityToolkit.Mvvm.Messaging;
using Livia.Utility;
using Livia.ViewModels;
namespace Livia.Views.Controls;
/// <summary>
/// Interaction logic for RoiExpanderControl.xaml
/// </summary>
public partial class RoiExpanderControl
{
//give a litter extra just to be safe. Maybe not needed though.
private static readonly DebounceHelper LocateRoiButtonDebounceHelper = new(TimeSpan.FromMilliseconds(RoiExpanderControlViewModel.BlinkTime + 100));
public RoiExpanderControl()
{
InitializeComponent();
}
private void ToggleRoiLocationDisplayModeButtonOnClick(object sender, RoutedEventArgs e)
{
if (DataContext is not RoiExpanderControlViewModel viewModel)
return;
viewModel.ToggleRoiLocationsDisplayMode();
}
private void ToggleTwoColumnModeButtonOnClick(object sender, RoutedEventArgs e)
{
if (DataContext is not RoiExpanderControlViewModel viewModel)
return;
viewModel.ToggleTwoColumnMode();
}
private void ToggleUnfoldButtonOnClick(object sender, RoutedEventArgs e)
{
if (DataContext is not RoiExpanderControlViewModel viewModel)
return;
viewModel.ToggleUnfold();
}
private void LocateRoiButtonOnClick(object sender, RoutedEventArgs e)
{
if (!LocateRoiButtonDebounceHelper.TryFire())
return;
if (DataContext is not RoiExpanderControlViewModel viewModel)
return;
WeakReferenceMessenger.Default.Send(new LocateRoiMessage(viewModel));
}
private void ShowBoundaryButtonOnClick(object sender, RoutedEventArgs e)
{
if (DataContext is not RoiExpanderControlViewModel viewModel)
return;
viewModel.ToggleShowBoundary();
}
}