private Controls.LayerFrame Text(TextOverlaySettings settings, string text) { var control = Generate(settings, text, ConvertColor(settings.BackgroundColor)); control.Label.FontSize = settings.FontSize; control.Border.Padding = new Thickness(settings.HorizontalPadding, settings.VerticalPadding, settings.HorizontalPadding, settings.VerticalPadding); control.Label.Foreground = new SolidColorBrush(ConvertColor(settings.FontColor)); control.Border.BorderThickness = new Thickness(settings.BorderThickness); control.Border.BorderBrush = new SolidColorBrush(ConvertColor(settings.BorderColor)); control.Border.CornerRadius = new CornerRadius(settings.CornerRadius); settings.PropertyChanged += (s, e) => { switch (e.PropertyName) { case nameof(settings.BackgroundColor): control.Border.Background = new SolidColorBrush(ConvertColor(settings.BackgroundColor)); break; case nameof(settings.FontColor): control.Label.Foreground = new SolidColorBrush(ConvertColor(settings.FontColor)); break; case nameof(settings.BorderThickness): control.Border.BorderThickness = new Thickness(settings.BorderThickness); break; case nameof(settings.BorderColor): control.Border.BorderBrush = new SolidColorBrush(ConvertColor(settings.BorderColor)); break; case nameof(settings.FontSize): control.Label.FontSize = settings.FontSize; break; case nameof(settings.HorizontalPadding): case nameof(settings.VerticalPadding): control.Border.Padding = new Thickness(settings.HorizontalPadding, settings.VerticalPadding, settings.HorizontalPadding, settings.VerticalPadding); break; case nameof(settings.CornerRadius): control.Border.CornerRadius = new CornerRadius(settings.CornerRadius); break; } }; return(control); }
public TextOverlayReactor(TextOverlaySettings Settings) { FontFamily = Settings .ObserveProperty(M => M.FontFamily) .Select(M => new FontFamily(M)) .ToReadOnlyReactivePropertySlim(); FontSize = Settings .ObserveProperty(M => M.FontSize) .ToReadOnlyReactivePropertySlim(); Padding = new[] { Settings .ObserveProperty(M => M.HorizontalPadding), Settings .ObserveProperty(M => M.VerticalPadding) } .CombineLatest(M => { var w = M[0]; var h = M[1]; return(new Thickness(w, h, w, h)); }) .ToReadOnlyReactivePropertySlim(); Foreground = Settings .ObserveProperty(M => M.FontColor) .Select(M => new SolidColorBrush(M.ToWpfColor())) .ToReadOnlyReactivePropertySlim(); Background = Settings .ObserveProperty(M => M.BackgroundColor) .Select(M => new SolidColorBrush(M.ToWpfColor())) .ToReadOnlyReactivePropertySlim(); BorderThickness = Settings .ObserveProperty(M => M.BorderThickness) .Select(M => new Thickness(M)) .ToReadOnlyReactivePropertySlim(); BorderBrush = Settings .ObserveProperty(M => M.BorderColor) .Select(M => new SolidColorBrush(M.ToWpfColor())) .ToReadOnlyReactivePropertySlim(); CornerRadius = Settings .ObserveProperty(M => M.CornerRadius) .Select(M => new CornerRadius(M)) .ToReadOnlyReactivePropertySlim(); }
static float GetTop(TextOverlaySettings OverlaySettings, float FullHeight, float TextHeight) { var y = OverlaySettings.Y; switch (OverlaySettings.VerticalAlignment) { case Alignment.Start: return(y); case Alignment.End: return(FullHeight - y - TextHeight - 2 * OverlaySettings.VerticalPadding); case Alignment.Center: return(FullHeight / 2 + y - TextHeight / 2 - OverlaySettings.VerticalPadding); default: return(0); } }
static float GetLeft(TextOverlaySettings OverlaySettings, float FullWidth, float TextWidth) { var x = OverlaySettings.X; switch (OverlaySettings.HorizontalAlignment) { case Alignment.Start: return(x); case Alignment.End: return(FullWidth - x - TextWidth - 2 * OverlaySettings.HorizontalPadding); case Alignment.Center: return(FullWidth / 2 + x - TextWidth / 2 - OverlaySettings.HorizontalPadding); default: return(0); } }
private static float GetTop(TextOverlaySettings overlaySettings, float fullHeight, float textHeight) { var y = overlaySettings.Y; switch (overlaySettings.VerticalAlignment) { case Alignment.Start: return(y); case Alignment.End: return(fullHeight - y - textHeight - 2 * overlaySettings.VerticalPadding); case Alignment.Center: return(fullHeight / 2 + y - textHeight / 2 - overlaySettings.VerticalPadding); default: return(0); } }
private static float GetLeft(TextOverlaySettings overlaySettings, float fullWidth, float textWidth) { var x = overlaySettings.X; switch (overlaySettings.HorizontalAlignment) { case Alignment.Start: return(x); case Alignment.End: return(fullWidth - x - textWidth - 2 * overlaySettings.HorizontalPadding); case Alignment.Center: return(fullWidth / 2 + x - textWidth / 2 - overlaySettings.HorizontalPadding); default: return(0); } }
static float GetTop(TextOverlaySettings KeystrokesSettings, float FullHeight, float TextHeight, float Offset = 0) { var y = KeystrokesSettings.Y; var padding = KeystrokesSettings.VerticalPadding; switch (KeystrokesSettings.VerticalAlignment) { case Alignment.Start: return(y + Offset); case Alignment.End: return(FullHeight - y - TextHeight - 2 * padding - Offset); case Alignment.Center: return(FullHeight / 2 + y - TextHeight / 2 - padding + Offset); default: return(0); } }
public static float GetLeft(TextOverlaySettings KeystrokesSettings, float FullWidth, float TextWidth) { var x = KeystrokesSettings.X; var padding = KeystrokesSettings.HorizontalPadding; switch (KeystrokesSettings.HorizontalAlignment) { case Alignment.Start: return(x); case Alignment.End: return(FullWidth - x - TextWidth - 2 * padding); case Alignment.Center: return(FullWidth / 2 + x - TextWidth / 2 - padding); default: return(0); } }
protected TextOverlay(TextOverlaySettings OverlaySettings) { _overlaySettings = OverlaySettings; }
public ElapsedOverlay(TextOverlaySettings OverlaySettings, Func <TimeSpan> Elapsed) : base(OverlaySettings) { _elapsed = Elapsed; }
public ElapsedOverlay(TextOverlaySettings overlaySettings, Func <TimeSpan> elapsed) : base(overlaySettings) { _elapsed = elapsed; }