public WpfPresentationSource(UIElement rootElement, IWpfValueConverter 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 = MouseDevice.ProcessRawEvent(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 = KeyboardDevice.ProcessRawEvent(new RawKeyboardEventArgs(converter.ConvertBack(e.Key), converter.ConvertBack(e.KeyStates), e.IsRepeat, GetTimestamp()));
            window.PreviewKeyUp += (sender, e) => e.Handled = KeyboardDevice.ProcessRawEvent(new RawKeyboardEventArgs(converter.ConvertBack(e.Key), converter.ConvertBack(e.KeyStates), e.IsRepeat, GetTimestamp()));
            window.Show();

            container.Children.Add(((IWpfRenderElement)rootElement.GetRenderElement(WpfRenderElementFactory.Default)).WpfElement);
            SetRootElementSize();

            MouseDevice.Activate();
            KeyboardDevice.Activate();
        }
示例#2
0
 public WpfVisualRenderElement(object owner, IWpfValueConverter converter)
 {
     this.converter = converter;
     children       = new List <object>();
     container      = new wpf::System.Windows.Controls.Canvas {
         Name = owner.GetType().Name, DataContext = owner
     };
 }
        public WpfTextBoxRenderElement(IWpfValueConverter converter)
        {
            this.converter = converter;
            bounds         = Rect.Zero;
            fontFamily     = FontFamily.Default;
            fontSize       = 11;

            SetTextContentAdapter();
        }
        public WpfTextBoxRenderElement(IWpfValueConverter converter)
        {
            this.converter = converter;
            bounds = Rect.Zero;
            fontFamily = FontFamily.Default;
            fontSize = 11;

            SetTextContentAdapter();
        }
        public WpfPresentationSource(UIElement rootElement, IWpfValueConverter 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.Default)).WpfElement);
            SetRootElementSize();
            ((FrameworkElement)RootElement).Arrange(new Rect(container.ActualWidth, container.ActualHeight));

            MouseDevice.Activate();
            KeyboardDevice.Activate();
        }
 public WpfBorderRenderElement(IWpfValueConverter converter)
 {
     this.converter = converter;
     border = new wpf::System.Windows.Controls.Border();
 }
 public WpfTextBlockRenderElement(IWpfValueConverter converter)
 {
     this.converter       = converter;
     textBlock            = new wpf::System.Windows.Controls.TextBlock();
     textBlock.Foreground = wpf::System.Windows.Media.Brushes.Red;
 }
 private WpfTextMeasurementService(IWpfValueConverter converter)
 {
     this.converter = converter;
 }
 private WpfTextMeasurementService(IWpfValueConverter converter)
 {
     this.converter = converter;
 }
示例#10
0
 public WpfImageRenderElement(IWpfValueConverter converter)
 {
     this.converter = converter;
     image = new wpf::System.Windows.Controls.Image();
     image.Stretch = wpf::System.Windows.Media.Stretch.Fill;
 }
示例#11
0
 public WpfVisualRenderElement(object owner, IWpfValueConverter converter)
 {
     this.converter = converter;
     children = new List<object>();
     container = new wpf::System.Windows.Controls.Canvas { Name = owner.GetType().Name, DataContext = owner };
 }
 public WpfBorderRenderElement(IWpfValueConverter converter)
 {
     this.converter = converter;
     border         = new wpf::System.Windows.Controls.Border();
 }
示例#13
0
 public WpfImageRenderElement(IWpfValueConverter converter)
 {
     this.converter = converter;
     image          = new wpf::System.Windows.Controls.Image();
     image.Stretch  = wpf::System.Windows.Media.Stretch.Fill;
 }