|
@@ -0,0 +1,90 @@
|
|
|
+using InABox.Core;
|
|
|
+using InABox.WPF;
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
+using System.Text;
|
|
|
+using System.Threading.Tasks;
|
|
|
+using System.Windows;
|
|
|
+using System.Windows.Controls;
|
|
|
+
|
|
|
+namespace InABox.DynamicGrid
|
|
|
+{
|
|
|
+ public class DFVideoControl : DynamicFormFieldControl<DFLayoutVideoField, DFLayoutVideoFieldProperties, byte[]>
|
|
|
+ {
|
|
|
+ Button PlayButton;
|
|
|
+ Button PauseButton;
|
|
|
+
|
|
|
+ byte[]? Data;
|
|
|
+
|
|
|
+ protected override FrameworkElement Create()
|
|
|
+ {
|
|
|
+ var grid = new Grid();
|
|
|
+
|
|
|
+ grid.ColumnDefinitions.Add(new ColumnDefinition { Width = GridLength.Auto });
|
|
|
+ grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
|
|
|
+
|
|
|
+ grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
|
|
|
+ grid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
|
|
|
+
|
|
|
+ PlayButton = new Button
|
|
|
+ {
|
|
|
+ Width = 25,
|
|
|
+ Height = 25,
|
|
|
+ Margin = new Thickness(5)
|
|
|
+ };
|
|
|
+
|
|
|
+ PlayButton.Content = new Image
|
|
|
+ {
|
|
|
+ Source = Wpf.Resources.play_button.AsBitmapImage(),
|
|
|
+ };
|
|
|
+ PlayButton.Click += PlayButton_Click;
|
|
|
+ PlayButton.SetGridPosition(1, 0);
|
|
|
+
|
|
|
+ PauseButton = new Button
|
|
|
+ {
|
|
|
+ Width = 25,
|
|
|
+ Height = 25,
|
|
|
+ Margin = new Thickness(5),
|
|
|
+ Visibility = Visibility.Hidden
|
|
|
+ };
|
|
|
+ PauseButton.Content = new Image
|
|
|
+ {
|
|
|
+ Source = Wpf.Resources.pause_button.AsBitmapImage()
|
|
|
+ };
|
|
|
+ PauseButton.Click += PauseButton_Click;
|
|
|
+ PauseButton.SetGridPosition(1, 0);
|
|
|
+
|
|
|
+ grid.Children.Add(PlayButton);
|
|
|
+ grid.Children.Add(PauseButton);
|
|
|
+
|
|
|
+ return grid;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void PlayButton_Click(object sender, RoutedEventArgs e)
|
|
|
+ {
|
|
|
+ //MediaElement.Play();
|
|
|
+ PlayButton.Visibility = Visibility.Hidden;
|
|
|
+ PauseButton.Visibility = Visibility.Visible;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void PauseButton_Click(object sender, RoutedEventArgs e)
|
|
|
+ {
|
|
|
+ //MediaElement.Pause();
|
|
|
+ PauseButton.Visibility = Visibility.Hidden;
|
|
|
+ PlayButton.Visibility = Visibility.Visible;
|
|
|
+ }
|
|
|
+
|
|
|
+ public override byte[] GetValue()
|
|
|
+ {
|
|
|
+ return Data ?? Array.Empty<byte>();
|
|
|
+ }
|
|
|
+
|
|
|
+ public override void SetValue(byte[]? value)
|
|
|
+ {
|
|
|
+ Data = value;
|
|
|
+ }
|
|
|
+
|
|
|
+ protected override bool IsEmpty() => Data is null || Data.Length == 0;
|
|
|
+ }
|
|
|
+}
|