123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334 |
- <Window
- x:Class="ShakerControl.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:hc="https://handyorg.github.io/handycontrol"
- xmlns:local="clr-namespace:ShakerControl"
- xmlns:mark="clr-namespace:AppResource.MarkupExtension;assembly=AppResource"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:model="clr-namespace:Shaker.Model;assembly=Shaker.Model"
- xmlns:view="clr-namespace:ShakerControl.View"
- xmlns:vm="clr-namespace:ShakerControl.ViewModel"
- Title="{Binding Title}"
- Width="800"
- Height="450"
- d:DataContext="{d:DesignInstance {x:Type vm:MainWindowViewModel}}"
- DataContext="{Binding Source={StaticResource VM}, Path=Data}"
- FontSize="{StaticResource ItemFontSize}"
- Foreground="{StaticResource ForeColor}"
- mc:Ignorable="d">
- <Grid>
- <Grid.Style>
- <Style TargetType="Grid">
- <Setter Property="IsEnabled">
- <Setter.Value>
- <MultiBinding
- Converter="{StaticResource MainWindowEnabledConverter}"
- ConverterParameter="1"
- Mode="OneWay">
- <Binding
- Mode="OneWay"
- Path="Data.IsOpen"
- Source="{StaticResource Prompt}" />
- </MultiBinding>
- </Setter.Value>
- </Setter>
- </Style>
- </Grid.Style>
- <Grid.RowDefinitions>
- <RowDefinition Height="auto" />
- <RowDefinition />
- </Grid.RowDefinitions>
- <Menu
- Grid.Row="0"
- VerticalAlignment="Center"
- VerticalContentAlignment="Center"
- FontSize="16">
- <MenuItem VerticalContentAlignment="Center" Header="{DynamicResource MenuFile}">
- <MenuItem Header="{DynamicResource MenuSaveConfig}" IsEnabled="{Binding Source={x:Static vm:DeviceMangerViewModel.Default}, Path=CurrentDevice, Converter={StaticResource Object2BooleanConverter}}" />
- <MenuItem Header="{DynamicResource MenuLoadConfig}" IsEnabled="{Binding Source={x:Static vm:DeviceMangerViewModel.Default}, Path=CurrentDevice, Converter={StaticResource Object2BooleanConverter}}" />
- <MenuItem Header="{DynamicResource MenuSaveSweepConfig}" Visibility="{Binding SelectedTest, Converter={StaticResource Boolean2VisibilityConverter}}">
- <MenuItem.Style>
- <Style TargetType="MenuItem" BasedOn="{StaticResource {x:Type MenuItem}}">
- <Style.Triggers>
- <DataTrigger Binding="{Binding Path=TestType}" Value="{x:Static model:TestType.Sine}">
- <Setter Property="IsEnabled" Value="True" />
- </DataTrigger>
- <DataTrigger Binding="{Binding Path=TestType}" Value="{x:Static model:TestType.Random}">
- <Setter Property="IsEnabled" Value="False" />
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </MenuItem.Style>
- </MenuItem>
- <MenuItem Header="{DynamicResource MenuLoadSweepConfig}" Visibility="{Binding SelectedTest, Converter={StaticResource Boolean2VisibilityConverter}}">
- <MenuItem.Style>
- <Style TargetType="MenuItem" BasedOn="{StaticResource {x:Type MenuItem}}">
- <Style.Triggers>
- <DataTrigger Binding="{Binding Path=TestType}" Value="{x:Static model:TestType.Sine}">
- <Setter Property="IsEnabled" Value="True" />
- </DataTrigger>
- <DataTrigger Binding="{Binding Path=TestType}" Value="{x:Static model:TestType.Random}">
- <Setter Property="IsEnabled" Value="False" />
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </MenuItem.Style>
- </MenuItem>
- <Separator />
- <MenuItem Command="{Binding ExitCommand}" Header="{DynamicResource MenuExit}" />
- </MenuItem>
- <MenuItem Header="{DynamicResource MenuDevice}">
- <MenuItem
- Command="{Binding Source={StaticResource DeviceManger}, Path=Data.DeviceMangerCommand}"
- Header="{DynamicResource MenuManger}"
- IsEnabled="{Binding Source={StaticResource DeviceManger}, Path=Data.CurrentDevice, Converter={StaticResource Object2BooleanReConverter}}" />
- <MenuItem
- Command="{Binding Source={StaticResource DeviceManger}, Path=Data.DisConnectDeviceCommand}"
- Header="{DynamicResource MenuDisConnect}"
- IsEnabled="{Binding Source={StaticResource DeviceManger}, Path=Data.CurrentDevice, Converter={StaticResource Object2BooleanConverter}}" />
- <MenuItem
- Command="{Binding Source={StaticResource VM}, Path=Data.DeviceConfigCommand}"
- Header="{DynamicResource MenuDeviceConfig}"
- IsEnabled="{Binding Source={StaticResource DeviceManger}, Path=Data.CurrentDevice, Converter={StaticResource Object2BooleanConverter}}" />
- <MenuItem
- Command="{Binding Source={StaticResource VM}, Path=Data.OilSourceControlCommand}"
- Header="{DynamicResource OilSourceControl}"
- IsEnabled="{Binding Source={StaticResource DeviceManger}, Path=Data.CurrentDevice, Converter={StaticResource Object2BooleanConverter}}" />
- </MenuItem>
- <MenuItem Header="{DynamicResource MenuTest}" IsEnabled="{Binding Source={StaticResource DeviceManger}, Path=Data.CurrentDevice, Converter={StaticResource Object2BooleanConverter}}">
- <MenuItem Header="{DynamicResource MenuSine}">
- <MenuItem.Style>
- <Style TargetType="MenuItem" BasedOn="{StaticResource {x:Type MenuItem}}">
- <Style.Triggers>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding Path=SelectedTest}" Value="True" />
- <Condition Binding="{Binding Path=TestType}" Value="{x:Static model:TestType.Sine}" />
- </MultiDataTrigger.Conditions>
- <MultiDataTrigger.Setters>
- <Setter Property="IsEnabled" Value="False" />
- </MultiDataTrigger.Setters>
- </MultiDataTrigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding Path=SelectedTest}" Value="True" />
- <Condition Binding="{Binding Path=TestType}" Value="{x:Static model:TestType.Random}" />
- </MultiDataTrigger.Conditions>
- <MultiDataTrigger.Setters>
- <Setter Property="IsEnabled" Value="True" />
- </MultiDataTrigger.Setters>
- </MultiDataTrigger>
- </Style.Triggers>
- </Style>
- </MenuItem.Style>
- <hc:Interaction.Triggers>
- <hc:EventTrigger EventName="Click">
- <hc:SetPropertyAction
- PropertyName="TestType"
- PropertyValue="{x:Static model:TestType.Sine}"
- TargetObject="{Binding Source={StaticResource VM}, Path=Data}" />
- <hc:SetPropertyAction
- PropertyName="SelectedTest"
- PropertyValue="True"
- TargetObject="{Binding Source={StaticResource VM}, Path=Data}" />
- </hc:EventTrigger>
- </hc:Interaction.Triggers>
- </MenuItem>
- <MenuItem Header="{DynamicResource MenuRandom}">
- <MenuItem.Style>
- <Style TargetType="MenuItem" BasedOn="{StaticResource {x:Type MenuItem}}">
- <Style.Triggers>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding Path=SelectedTest}" Value="True" />
- <Condition Binding="{Binding Path=TestType}" Value="{x:Static model:TestType.Sine}" />
- </MultiDataTrigger.Conditions>
- <MultiDataTrigger.Setters>
- <Setter Property="IsEnabled" Value="True" />
- </MultiDataTrigger.Setters>
- </MultiDataTrigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding Path=SelectedTest}" Value="True" />
- <Condition Binding="{Binding Path=TestType}" Value="{x:Static model:TestType.Random}" />
- </MultiDataTrigger.Conditions>
- <MultiDataTrigger.Setters>
- <Setter Property="IsEnabled" Value="False" />
- </MultiDataTrigger.Setters>
- </MultiDataTrigger>
- </Style.Triggers>
- </Style>
- </MenuItem.Style>
- <hc:Interaction.Triggers>
- <hc:EventTrigger EventName="Click">
- <hc:SetPropertyAction
- PropertyName="TestType"
- PropertyValue="{x:Static model:TestType.Random}"
- TargetObject="{Binding Source={StaticResource VM}, Path=Data}" />
- <hc:SetPropertyAction
- PropertyName="SelectedTest"
- PropertyValue="True"
- TargetObject="{Binding Source={StaticResource VM}, Path=Data}" />
- </hc:EventTrigger>
- </hc:Interaction.Triggers>
- </MenuItem>
- <Separator />
- <MenuItem Command="{Binding SignalPreviewCommand}" Header="{DynamicResource SignalPreview}" />
- <Separator />
- <MenuItem Header="{DynamicResource MenuExitTest}" IsEnabled="{Binding SelectedTest}">
- <hc:Interaction.Triggers>
- <hc:EventTrigger EventName="Click">
- <hc:SetPropertyAction
- PropertyName="SelectedTest"
- PropertyValue="False"
- TargetObject="{Binding Source={StaticResource VM}, Path=Data}" />
- </hc:EventTrigger>
- </hc:Interaction.Triggers>
- </MenuItem>
- </MenuItem>
- <MenuItem Header="{DynamicResource MenuTestConfig}" Visibility="{Binding SelectedTest, Converter={StaticResource Boolean2VisibilityConverter}}">
- <MenuItem Command="{Binding SweepConfigCommand}" Header="{DynamicResource MenuSineTestConfig}">
- <MenuItem.Style>
- <Style TargetType="MenuItem" BasedOn="{StaticResource {x:Type MenuItem}}">
- <Style.Triggers>
- <DataTrigger Binding="{Binding Path=TestType}" Value="{x:Static model:TestType.Sine}">
- <Setter Property="IsEnabled" Value="True" />
- </DataTrigger>
- <DataTrigger Binding="{Binding Path=TestType}" Value="{x:Static model:TestType.Random}">
- <Setter Property="IsEnabled" Value="False" />
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </MenuItem.Style>
- </MenuItem>
- <MenuItem Header="{DynamicResource MenuRandomTestConfig}">
- <MenuItem.Style>
- <Style TargetType="MenuItem" BasedOn="{StaticResource {x:Type MenuItem}}">
- <Style.Triggers>
- <DataTrigger Binding="{Binding Path=TestType}" Value="{x:Static model:TestType.Sine}">
- <Setter Property="IsEnabled" Value="False" />
- </DataTrigger>
- <DataTrigger Binding="{Binding Path=TestType}" Value="{x:Static model:TestType.Random}">
- <Setter Property="IsEnabled" Value="True" />
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </MenuItem.Style>
- </MenuItem>
- </MenuItem>
- <MenuItem Header="{DynamicResource MenuAbout}">
- <MenuItem Command="{Binding SettingCommand}" Header="{DynamicResource MenuSetting}" />
- <MenuItem Header="{DynamicResource MenuAbout}" />
- </MenuItem>
- </Menu>
- <ContentControl Grid.Row="1" />
- <hc:Drawer
- Grid.Row="0"
- Grid.RowSpan="2"
- DataContext="{Binding Source={StaticResource Prompt}, Path=Data}"
- Dock="Top"
- IsCenter="True"
- IsOpen="{Binding IsOpen}"
- ShowMask="True">
- <Border
- Width="560"
- Height="340"
- Background="{StaticResource MainBrush}"
- BorderBrush="{StaticResource AuxiliaryBrush}"
- BorderThickness="1"
- CornerRadius="6">
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="66" />
- <RowDefinition Height="2*" />
- <RowDefinition Height="*" />
- </Grid.RowDefinitions>
- <Border
- Grid.ColumnSpan="2"
- Background="{StaticResource EmbellishBrush}"
- CornerRadius="6,6,0,0">
- <TextBlock
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- FontSize="32"
- FontWeight="Bold"
- Foreground="{StaticResource MainBrush}"
- Text="{Binding Title}" />
- </Border>
- <StackPanel
- Grid.Row="1"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Orientation="Horizontal">
- <Viewbox
- Grid.Row="1"
- Grid.Column="0"
- Width="60"
- Height="60"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Visibility="{Binding IconVisibility}">
- <Path Data="{Binding IconGeometry, Mode=OneWay}" Fill="{Binding IconBrush}" />
- </Viewbox>
- <TextBlock
- Grid.Row="1"
- Grid.Column="1"
- MaxWidth="420"
- Margin="20"
- HorizontalAlignment="Left"
- VerticalAlignment="Center"
- FontSize="20"
- Text="{Binding Message}"
- TextWrapping="Wrap" />
- </StackPanel>
- <StackPanel
- Grid.Row="2"
- Grid.ColumnSpan="2"
- HorizontalAlignment="Center"
- VerticalAlignment="Center"
- Orientation="Horizontal">
- <Button
- Width="88"
- Height="38"
- hc:IconElement.Geometry="{StaticResource YesGeometry}"
- hc:IconElement.Height="20"
- hc:IconElement.Width="20"
- BorderBrush="Green"
- Command="{Binding YesCommand}"
- Content="{Binding YesText}"
- Cursor="Hand"
- FontSize="16"
- Foreground="Green"
- Style="{StaticResource HasIconButton}"
- ToolTip="{Binding YesText}"
- Visibility="{Binding YesVisibility}" />
- <Button
- Width="88"
- Height="38"
- Margin="100,0,0,0"
- hc:IconElement.Geometry="{StaticResource NoGeometry}"
- hc:IconElement.Height="20"
- hc:IconElement.Width="20"
- BorderBrush="Red"
- Command="{Binding NoCommand}"
- Content="{Binding NoText}"
- Cursor="Hand"
- FontSize="16"
- Foreground="Red"
- Style="{StaticResource HasIconButton}"
- ToolTip="{Binding NoText}"
- Visibility="{Binding NoVisibility}" />
- </StackPanel>
- </Grid>
- </Border>
- </hc:Drawer>
- </Grid>
- </Window>
|