protected void OnLoaded(object sender, RoutedEventArgs e) { if (_loaded) { return; } _graphicsDeviceService = new GraphicsDeviceService(); _renderWindow = new RenderWindow((int)ActualWidth, (int)ActualHeight, _graphicsDeviceService.Device); _backBufferPointer = _renderWindow.GetBackBufferComPointer(); _trackball.TransformUpdated += OnTrackballTransformUpdated; _trackball.EventSource = this; _renderer = new Renderer(_graphicsDeviceService.Device, GetModel(), _graphicsDeviceService.Device.Viewport.Width, _graphicsDeviceService.Device.Viewport.Height, _trackball.Transform); ModelEditorViewModel vm = (ModelEditorViewModel)DataContext; vm.RenderParametersChanged += (sender2, e2) => Refresh(); Refresh(); _loaded = true; }