MainWindow.axaml 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <Window xmlns="https://github.com/avaloniaui"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:vm="using:SlamCross.ViewModels"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. mc:Ignorable="d" d:DesignWidth="900" d:DesignHeight="600"
  7. x:Class="SlamCross.Views.MainWindow"
  8. x:DataType="vm:MainWindowViewModel"
  9. Title="SLAM - Source Live Audio Mixer"
  10. Width="900" Height="600"
  11. MinWidth="700" MinHeight="450">
  12. <Design.DataContext>
  13. <vm:MainWindowViewModel/>
  14. </Design.DataContext>
  15. <DockPanel Margin="8">
  16. <StackPanel DockPanel.Dock="Top" Spacing="6" Margin="0,0,0,6">
  17. <Grid ColumnDefinitions="Auto,Auto,Auto,*,Auto">
  18. <Button Grid.Column="0" Content="Import Files" Click="ImportButton_Click"
  19. IsEnabled="{Binding InterfaceEnabled}" Margin="0,0,4,0"/>
  20. <Button Grid.Column="1" Content="Import from YouTube" Click="YTButton_Click"
  21. IsEnabled="{Binding InterfaceEnabled}" Margin="0,0,4,0"/>
  22. <Button Grid.Column="2" Content="{Binding StartButtonText}"
  23. Click="StartStopButton_Click" Margin="0,0,8,0"/>
  24. <TextBlock Grid.Column="3" Text="{Binding StatusText}"
  25. VerticalAlignment="Center"/>
  26. <Button Grid.Column="4" Content="Settings" Click="SettingsButton_Click"
  27. IsEnabled="{Binding InterfaceEnabled}"/>
  28. </Grid>
  29. <ProgressBar Value="{Binding Progress}" Maximum="{Binding ProgressMax}" Height="6"/>
  30. <Grid ColumnDefinitions="Auto,8,Auto,8,Auto,*">
  31. <Button Grid.Column="0" Content="{Binding PlayKeyButtonText}" Click="PlayKeyButton_Click"
  32. IsEnabled="{Binding InterfaceEnabled}"/>
  33. <Button Grid.Column="2" Content="{Binding StreamButtonText}" Click="StreamButton_Click"
  34. Background="#2a7a2a"/>
  35. <Button Grid.Column="4" Content="Stop Stream" Click="StopStreamButton_Click"
  36. IsEnabled="{Binding IsStreaming}" Background="#7a2a2a"/>
  37. <TextBlock Grid.Column="5" Text="{Binding StreamStatusText}"
  38. VerticalAlignment="Center" Margin="8,0,0,0" FontStyle="Italic"/>
  39. </Grid>
  40. <Grid ColumnDefinitions="Auto,8,*,8,40">
  41. <TextBlock Grid.Column="0" Text="Volume:" VerticalAlignment="Center"/>
  42. <Slider Grid.Column="2" Minimum="0" Maximum="100"
  43. Value="{Binding GlobalVolume}"
  44. VerticalAlignment="Center"/>
  45. <TextBlock Grid.Column="4" Text="{Binding GlobalVolume, StringFormat='{}{0}%'}"
  46. VerticalAlignment="Center" HorizontalAlignment="Right"/>
  47. </Grid>
  48. <Grid ColumnDefinitions="Auto,*,8,Auto,*,8,Auto,*" RowDefinitions="Auto">
  49. <TextBlock Grid.Column="0" Text="Virtual Cable In:" VerticalAlignment="Center" Margin="0,0,4,0"/>
  50. <ComboBox Grid.Column="1"
  51. ItemsSource="{Binding OutputDevices}"
  52. SelectedItem="{Binding SelectedVirtualInCable}"
  53. DisplayMemberBinding="{Binding Name}"/>
  54. <TextBlock Grid.Column="3" Text="Cable Out (mic):" VerticalAlignment="Center" Margin="0,0,4,0"/>
  55. <ComboBox Grid.Column="4"
  56. ItemsSource="{Binding InputDevices}"
  57. SelectedItem="{Binding SelectedVirtualOutCable}"
  58. DisplayMemberBinding="{Binding Name}"/>
  59. <TextBlock Grid.Column="6" Text="Regular Mic:" VerticalAlignment="Center" Margin="0,0,4,0"/>
  60. <ComboBox Grid.Column="7"
  61. ItemsSource="{Binding InputDevices}"
  62. SelectedItem="{Binding SelectedRegularMic}"
  63. DisplayMemberBinding="{Binding Name}"/>
  64. </Grid>
  65. </StackPanel>
  66. <DataGrid x:Name="TrackGrid"
  67. ItemsSource="{Binding Tracks}"
  68. SelectionMode="Extended"
  69. CanUserSortColumns="True"
  70. CanUserResizeColumns="True"
  71. IsReadOnly="True"
  72. DoubleTapped="TrackGrid_DoubleTapped">
  73. <DataGrid.Columns>
  74. <DataGridTextColumn Header="Playing" Binding="{Binding IsPlaying}" Width="60"/>
  75. <DataGridTextColumn Header="Name" Binding="{Binding Name}" Width="*"/>
  76. <DataGridTextColumn Header="Hotkey" Binding="{Binding Hotkey}" Width="70"/>
  77. <DataGridTextColumn Header="Volume" Binding="{Binding Volume}" Width="65"/>
  78. <DataGridTextColumn Header="Trimmed" Binding="{Binding Trimmed}" Width="65"/>
  79. <DataGridTextColumn Header="Tags" Binding="{Binding Tags}" Width="200"/>
  80. </DataGrid.Columns>
  81. <DataGrid.ContextMenu>
  82. <ContextMenu x:Name="TrackContextMenu">
  83. <MenuItem Header="Play" Click="MenuPlay_Click"/>
  84. <MenuItem Header="Refresh" Click="MenuRefresh_Click"/>
  85. <Separator/>
  86. <MenuItem Header="Set Volume" Click="MenuVolume_Click"/>
  87. <MenuItem Header="Set Hotkey" Click="MenuHotkey_Click"/>
  88. <MenuItem Header="Remove Hotkey" Click="MenuRemoveHotkey_Click"/>
  89. <MenuItem Header="Trim" Click="MenuTrim_Click"/>
  90. <MenuItem Header="Rename" Click="MenuRename_Click"/>
  91. <Separator/>
  92. <MenuItem Header="Show in Files" Click="MenuGoTo_Click"/>
  93. <Separator/>
  94. <MenuItem Header="Delete" Click="MenuDelete_Click"/>
  95. </ContextMenu>
  96. </DataGrid.ContextMenu>
  97. </DataGrid>
  98. </DockPanel>
  99. </Window>