private Controls.LayerFrame Image(ImageOverlaySettings settings, string text) { var control = Generate(settings, text, Colors.Brown); control.Width = settings.ResizeWidth; control.Height = settings.ResizeHeight; control.Opacity = settings.Opacity / 100.0; settings.PropertyChanged += (s, e) => { Dispatcher.Invoke(() => { control.Width = settings.ResizeWidth; control.Height = settings.ResizeHeight; control.Opacity = settings.Opacity / 100.0; }); }; control.PositionUpdated += rect => { settings.ResizeWidth = (int)rect.Width; settings.ResizeHeight = (int)rect.Height; }; return(control); }
public ImageOverlayReactor(ImageOverlaySettings Settings) { Width = Settings .ToReactivePropertyAsSynchronized(M => M.ResizeWidth); Height = Settings .ToReactivePropertyAsSynchronized(M => M.ResizeHeight); Opacity = Settings .ObserveProperty(M => M.Opacity) .Select(M => M / 100.0) .ToReadOnlyReactivePropertySlim(); }