XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEEDToolBox

【WinUI】XFE精英危险工具箱

公开
关注 0 Fork 0 Star 0
UTF-8
using XFEEDToolBox.ViewModels;
namespace XFEEDToolBox.Controls;
public sealed partial class ShipStatusPanel:UserControl
{
    public ToolboxViewModel ViewModel=>App.ViewModel;
    private bool visible;
    public ShipStatusPanel()
    {
        InitializeComponent();Loaded+=(_,_)=>{if(!visible){visible=true;ViewModel.ShowShipStatus();}};
        Unloaded+=(_,_)=>{if(visible){visible=false;ViewModel.HideShipStatus();}};
    }
    private void StatusTabChanged(SelectorBar sender,SelectorBarSelectionChangedEventArgs args)
    {
        if(SpecificationsView is null||FlightView is null||AmmoView is null||CockpitView is null)return;
        var index=sender.Items.IndexOf(sender.SelectedItem);
        SpecificationsView.Visibility=index==0?Visibility.Visible:Visibility.Collapsed;
        FlightView.Visibility=index==1?Visibility.Visible:Visibility.Collapsed;
        AmmoView.Visibility=index==2?Visibility.Visible:Visibility.Collapsed;
        CockpitView.Visibility=index==3?Visibility.Visible:Visibility.Collapsed;
    }
    private static readonly Microsoft.UI.Xaml.Media.Brush normalPowerBrush=new Microsoft.UI.Xaml.Media.SolidColorBrush(Windows.UI.Color.FromArgb(255,255,174,73));
    private static readonly Microsoft.UI.Xaml.Media.Brush overloadedPowerBrush=new Microsoft.UI.Xaml.Media.SolidColorBrush(Windows.UI.Color.FromArgb(255,255,91,100));
    public Microsoft.UI.Xaml.Media.Brush PowerBrush(bool overloaded)=>overloaded?overloadedPowerBrush:normalPowerBrush;
    private void SpecificationsSizeChanged(object sender,SizeChangedEventArgs args)
    {
        var stacked=args.NewSize.Width<900;
        PowerColumn.Width=stacked?new(0):new(1,GridUnitType.Star);
        Grid.SetColumn(PowerSection,stacked?0:1);Grid.SetRow(PowerSection,stacked?1:0);
    }
}