123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- <suki:SukiWindow
- x:Class="ShakerApp.Views.MainWindow"
- xmlns="https://github.com/avaloniaui"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:local="using:ShakerApp"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:model="using:ShakerApp.Models"
- xmlns:model1="using:Shaker.Models"
- xmlns:suki="https://github.com/kikipoulet/SukiUI"
- xmlns:views="clr-namespace:ShakerApp.Views"
- xmlns:vm="using:ShakerApp.ViewModels"
- Title="{Binding Title}"
- d:DesignHeight="450"
- d:DesignWidth="800"
- x:DataType="vm:MainViewModel"
- ClosingBehavior="OwnerAndChildWindows"
- DataContext="{Binding Source={x:Static vm:MainViewModel.Default}}"
- ExtendClientAreaChromeHints="NoChrome"
- ExtendClientAreaTitleBarHeightHint="0"
- ExtendClientAreaToDecorationsHint="True"
- FontStyle="Normal"
- FontWeight="Medium"
- Foreground="{Binding TitleColor}"
- IsMenuVisible="True"
- mc:Ignorable="d">
- <suki:SukiWindow.MenuItems>
- <MenuItem Header="{DynamicResource MenuFile}">
- <MenuItem
- Command="{Binding SaveConfigCommand}"
- CommandParameter="MenuSaveConfig"
- Header="{DynamicResource MenuSaveConfig}">
- <MenuItem.Icon>
- <PathIcon Data="{StaticResource SaveGeometry}" />
- </MenuItem.Icon>
- </MenuItem>
- <MenuItem
- Command="{Binding LoadConfigCommand}"
- CommandParameter="MenuLoadConfig"
- Header="{DynamicResource MenuLoadConfig}">
- <MenuItem.Icon>
- <PathIcon Data="{StaticResource OpenGeometry}" />
- </MenuItem.Icon>
- </MenuItem>
- <Separator />
- <MenuItem
- Command="{Binding DataReviewCommand}"
- CommandParameter="MenuDataReview"
- Header="{DynamicResource MenuDataReview}">
- <MenuItem.Icon>
- <PathIcon Data="{StaticResource WaveGeometry}" />
- </MenuItem.Icon>
- </MenuItem>
- <Separator />
- <MenuItem Command="{Binding ExitCommand}" Header="{DynamicResource MenuExit}">
- <MenuItem.Icon>
- <PathIcon Data="{StaticResource ExitGeometry}" />
- </MenuItem.Icon>
- </MenuItem>
- </MenuItem>
- <MenuItem Header="{DynamicResource MenuDevice}">
- <MenuItem
- Command="{Binding DeviceMangerCommand}"
- CommandParameter="MenuManger"
- Header="{DynamicResource MenuManger}"
- IsEnabled="{Binding Source={x:Static vm:CommunicationViewModel.Instance}, Path=!LocalIsConnect}"
- IsVisible="{Binding Source={x:Static vm:ShakerSettingViewModel.Instance}, Path=WorkingMode, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static model:WorkingMode.Local}}" />
- <MenuItem
- Command="{Binding ConnectCommand}"
- CommandParameter="MenuConnect"
- Header="{DynamicResource MenuConnect}"
- IsEnabled="{Binding Source={x:Static vm:CommunicationViewModel.Instance}, Path=!LocalIsConnect}"
- IsVisible="{Binding Source={x:Static vm:ShakerSettingViewModel.Instance}, Path=WorkingMode, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static model:WorkingMode.Remote}}" />
- <MenuItem
- Command="{Binding DisConnectCommand}"
- Header="{DynamicResource MenuDisConnect}"
- IsEnabled="{Binding Source={x:Static vm:CommunicationViewModel.Instance}, Path=LocalIsConnect}" />
- <MenuItem
- Command="{Binding ShakerConfigCommand}"
- CommandParameter="MenuDeviceConfig"
- Header="{DynamicResource MenuDeviceConfig}"
- IsEnabled="{Binding Source={x:Static vm:CommunicationViewModel.Instance}, Path=LocalIsConnect}" />
- <Separator />
- <MenuItem
- Command="{Binding ShakerControlCommand}"
- CommandParameter="MenuShakerControl"
- Header="{DynamicResource MenuShakerControl}"
- IsEnabled="{Binding Source={x:Static vm:CommunicationViewModel.Instance}, Path=LocalIsConnect}" />
- <Separator />
- <MenuItem
- Command="{Binding OilControlCommand}"
- CommandParameter="MenuOilSourceControl"
- Header="{DynamicResource MenuOilSourceControl}">
- <MenuItem.IsEnabled>
- <MultiBinding Converter="{StaticResource MutliBoolConverter}">
- <MultiBinding.Bindings>
- <Binding Path="LocalIsConnect" Source="{x:Static vm:CommunicationViewModel.Instance}" />
- <Binding Path="IsEnabled" Source="{x:Static vm:OilSourceStatusViewModel.Instance}" />
- </MultiBinding.Bindings>
- </MultiBinding>
- </MenuItem.IsEnabled>
- </MenuItem>
- <Separator IsVisible="{Binding CanDebug}" />
- <MenuItem
- Command="{Binding DebugCommand}"
- CommandParameter="MenuDebug"
- Header="{DynamicResource MenuDebug}"
- IsEnabled="{Binding Source={x:Static vm:CommunicationViewModel.Instance}, Path=LocalIsConnect}"
- IsVisible="{Binding CanDebug}" />
- </MenuItem>
- <MenuItem Header="{DynamicResource MenuTest}" IsEnabled="{Binding Source={x:Static vm:CommunicationViewModel.Instance}, Path=LocalIsConnect}">
- <MenuItem.Styles>
- <Style Selector="MenuItem.Selected">
- <Setter Property="Icon">
- <Setter.Value>
- <Template>
- <PathIcon Data="{x:Static suki:Icons.Check}" />
- </Template>
- </Setter.Value>
- </Setter>
- <Setter Property="IsEnabled" Value="False" />
- </Style>
- </MenuItem.Styles>
- <MenuItem
- Classes.Selected="{Binding Source={x:Static vm:MainPageViewModel.Instance}, Path=MainPageType, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static model1:MainPageType.SinePage}}"
- Command="{Binding SelectTestTypeCommand}"
- CommandParameter="{x:Static model1:MainPageType.SinePage}"
- Header="{DynamicResource MenuSine}" />
- <MenuItem
- Classes.Selected="{Binding Source={x:Static vm:MainPageViewModel.Instance}, Path=MainPageType, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static model1:MainPageType.RandomPage}}"
- Command="{Binding SelectTestTypeCommand}"
- CommandParameter="{x:Static model1:MainPageType.RandomPage}"
- Header="{DynamicResource MenuRandom}" />
- <MenuItem
- Classes.Selected="{Binding Source={x:Static vm:MainPageViewModel.Instance}, Path=MainPageType, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static model1:MainPageType.OutSignal}}"
- Command="{Binding SelectTestTypeCommand}"
- CommandParameter="{x:Static model1:MainPageType.OutSignal}"
- Header="{DynamicResource OutInputSignal}" />
- <Separator />
- <MenuItem
- Command="{Binding SignalPreviewCommand}"
- CommandParameter="SignalPreview"
- Header="{DynamicResource SignalPreview}" />
- <Separator />
- <MenuItem
- Classes.NoTest="{Binding Source={x:Static vm:MainPageViewModel.Instance}, Path=MainPageType, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static model1:MainPageType.StartPage}}"
- Command="{Binding SelectTestTypeCommand}"
- CommandParameter="{x:Static model1:MainPageType.StartPage}"
- Header="{DynamicResource MenuExitTest}">
- <MenuItem.Styles>
- <Style Selector="MenuItem.NoTest">
- <Setter Property="IsEnabled" Value="False" />
- </Style>
- </MenuItem.Styles>
- </MenuItem>
- </MenuItem>
- <MenuItem Classes.NoTest="{Binding Source={x:Static vm:MainPageViewModel.Instance}, Path=MainPageType, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static model1:MainPageType.StartPage}}" Header="{DynamicResource MenuTestConfig}">
- <MenuItem.Styles>
- <Style Selector="MenuItem.NoTest">
- <Setter Property="IsEnabled" Value="False" />
- </Style>
- </MenuItem.Styles>
- <MenuItem
- Classes.Selected="{Binding Source={x:Static vm:MainPageViewModel.Instance}, Path=MainPageType, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static model1:MainPageType.SinePage}}"
- Command="{Binding SweepConfigCommand}"
- CommandParameter="MenuSineTestConfig"
- Header="{DynamicResource MenuSineTestConfig}">
- <MenuItem.Styles>
- <Style Selector="MenuItem.Selected">
- <Setter Property="IsEnabled" Value="True" />
- </Style>
- <Style Selector="MenuItem">
- <Setter Property="IsEnabled" Value="False" />
- </Style>
- </MenuItem.Styles>
- </MenuItem>
- <MenuItem
- Classes.Selected="{Binding Source={x:Static vm:MainPageViewModel.Instance}, Path=MainPageType, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static model1:MainPageType.RandomPage}}"
- Command="{Binding RandomConfigCommand}"
- CommandParameter="MenuRandomTestConfig"
- Header="{DynamicResource MenuRandomTestConfig}">
- <MenuItem.Styles>
- <Style Selector="MenuItem.Selected">
- <Setter Property="IsEnabled" Value="True" />
- </Style>
- <Style Selector="MenuItem">
- <Setter Property="IsEnabled" Value="False" />
- </Style>
- </MenuItem.Styles>
- </MenuItem>
- </MenuItem>
- <MenuItem Header="{DynamicResource MenuAbout}">
- <MenuItem
- Command="{Binding SettingCommand}"
- CommandParameter="MenuSetting"
- Header="{DynamicResource MenuSetting}">
- <MenuItem.Icon>
- <PathIcon Data="{StaticResource SettingGeometry}" />
- </MenuItem.Icon>
- </MenuItem>
- <MenuItem
- Command="{Binding UpbitfileCommand}"
- CommandParameter="UpBitfile"
- Header="{DynamicResource UpBitfile}"
- IsEnabled="{Binding Source={x:Static vm:CommunicationViewModel.Instance}, Path=LocalIsConnect}">
- <MenuItem.Icon>
- <PathIcon Data="{StaticResource UpbitfileGeometry}" />
- </MenuItem.Icon>
- </MenuItem>
- <MenuItem
- Command="{Binding LogCommand}"
- CommandParameter="MenuLog"
- Header="{DynamicResource MenuLog}">
- <MenuItem.Icon>
- <PathIcon Data="{StaticResource LogGeometry}" />
- </MenuItem.Icon>
- </MenuItem>
- <MenuItem
- Command="{Binding AboutCommand}"
- CommandParameter="MenuAbout"
- Header="{DynamicResource MenuAbout}">
- <MenuItem.Icon>
- <PathIcon Data="{StaticResource AboutGeometry}" />
- </MenuItem.Icon>
- </MenuItem>
- </MenuItem>
- </suki:SukiWindow.MenuItems>
- <Interaction.Behaviors>
- <EventTriggerBehavior EventName="Closing">
- <InvokeCommandAction Command="{Binding CloseCommand}" />
- </EventTriggerBehavior>
- </Interaction.Behaviors>
- <suki:SukiWindow.Hosts>
- <suki:SukiToastHost Manager="{Binding ToastManager}" />
- <suki:SukiDialogHost Manager="{Binding DialogManager}" />
- </suki:SukiWindow.Hosts>
- <ContentPresenter Content="{Binding Source={x:Static vm:MainPageViewModel.Instance}, Path=Content, Converter={StaticResource Type2ViewConverter}}" Foreground="Black" />
- </suki:SukiWindow>
|