public WpfApplicationHost() { WpfValueConverter wpfValueConverter = new WpfValueConverter(); WpfRenderElementFactory wpfRenderElementFactory = new WpfRenderElementFactory(wpfValueConverter); PresentationSourceFactory = new WpfPresentationSourceFactory(wpfRenderElementFactory, wpfValueConverter); TaskScheduler = new WpfTaskScheduler(); TextMeasurementService = new WpfTextMeasurementService(wpfValueConverter); wpf::System.Windows.Application application = new wpf::System.Windows.Application(); }
public WpfPresentationSource(UIElement rootElement, WpfRenderElementFactory wpfRenderElementFactory, WpfValueConverter converter) { this.RootElement = rootElement; this.converter = converter; RootElement.IsRootElement = true; MouseDevice = new MouseDevice(this); KeyboardDevice = new KeyboardDevice(this); container = new wpf::System.Windows.Controls.Canvas { Background = wpf::System.Windows.Media.Brushes.Transparent }; container.PreviewMouseMove += OnContainerMouseMove; container.PreviewMouseDown += OnContainerMouseDown; container.PreviewMouseUp += OnContainerMouseUp; container.PreviewMouseWheel += (sender, e) => e.Handled = ProcessMouseEvent(new RawMouseWheelEventArgs(e.Delta, converter.ConvertBack(e.GetPosition(container)), GetTimestamp())); MouseDevice.CursorChanged += (sender, e) => container.Cursor = converter.Convert(MouseDevice.Cursor); container.Cursor = converter.Convert(MouseDevice.Cursor); window = new wpf::System.Windows.Window { UseLayoutRounding = true, Content = container }; window.Activated += (sender, e) => MouseDevice.Activate(); window.Deactivated += (sender, e) => MouseDevice.Deactivate(); window.SizeChanged += (sender, e) => SetRootElementSize(); window.PreviewKeyDown += (sender, e) => e.Handled = ProcessKeyboardEvent(new RawKeyboardEventArgs(converter.ConvertBack(e.Key), converter.ConvertBack(e.KeyStates), e.IsRepeat, GetTimestamp())); window.PreviewKeyUp += (sender, e) => e.Handled = ProcessKeyboardEvent(new RawKeyboardEventArgs(converter.ConvertBack(e.Key), converter.ConvertBack(e.KeyStates), e.IsRepeat, GetTimestamp())); window.Show(); container.Children.Add(((IWpfRenderElement)rootElement.GetRenderElement(wpfRenderElementFactory)).WpfElement); SetRootElementSize(); ((FrameworkElement)RootElement).Arrange(new Rect(container.ActualWidth, container.ActualHeight)); MouseDevice.Activate(); KeyboardDevice.Activate(); }
public WpfTextMeasurementService(WpfValueConverter converter) { this.converter = converter; }
public WpfPresentationSourceFactory(WpfRenderElementFactory wpfRenderElementFactory, WpfValueConverter wpfValueConverter) { presentationSources = new List <WpfPresentationSource>(); this.wpfRenderElementFactory = wpfRenderElementFactory; this.wpfValueConverter = wpfValueConverter; }