public override void OnApplyTemplate() { base.OnApplyTemplate(); IsManipulationEnabled = true; _itemsControl = GetTemplateChild("PART_ItemsControl") as ItemsControl; if (_itemsControl == null) return; _itemsControl.ApplyTemplate(); var factoryPanel = new FrameworkElementFactory(typeof(ZoomableCanvas)); factoryPanel.AddHandler(LoadedEvent, new RoutedEventHandler(ZoomableCanvasLoaded)); _itemsControl.ItemsPanel = new ItemsPanelTemplate(factoryPanel); if (_spatialSource != null) _itemsControl.ItemsSource = _spatialSource; }