diff --git a/src/Eto.Wpf/Forms/Controls/DrawableHandler.cs b/src/Eto.Wpf/Forms/Controls/DrawableHandler.cs index f5e0e67dea..f5e5b4a5c5 100644 --- a/src/Eto.Wpf/Forms/Controls/DrawableHandler.cs +++ b/src/Eto.Wpf/Forms/Controls/DrawableHandler.cs @@ -11,7 +11,12 @@ namespace Eto.Wpf.Forms.Controls { - public class DrawableHandler : WpfPanel, Drawable.IHandler + public class DrawableHandler : DrawableHandler { } + + public class DrawableHandler : WpfPanel, Drawable.IHandler + where TControl : swc.Canvas + where TWidget : Drawable + where TCallback : Drawable.ICallback { bool tiled; sw.FrameworkElement content; @@ -51,9 +56,9 @@ public Size TileSize } } - class EtoMainCanvas : swc.Canvas + public class EtoMainCanvas : swc.Canvas { - public DrawableHandler Handler { get; set; } + public DrawableHandler Handler { get; set; } protected override void OnMouseDown(sw.Input.MouseButtonEventArgs e) { @@ -111,7 +116,7 @@ protected override sw.Size ArrangeOverride(sw.Size arrangeSize) class EtoTile : sw.FrameworkElement { Rectangle bounds; - public DrawableHandler Handler { get; set; } + public DrawableHandler Handler { get; set; } public Rectangle Bounds { @@ -163,18 +168,26 @@ public override void OnUnLoad(EventArgs e) UnRegisterScrollable(); } - public void Create() + protected override TControl CreateControl() { - Control = new EtoMainCanvas + return new EtoMainCanvas { Handler = this, SnapsToDevicePixels = true, FocusVisualStyle = null, Background = swm.Brushes.Transparent - }; + } as TControl; + } + + protected override void Initialize() + { + base.Initialize(); + Control.Loaded += Control_Loaded; } + public void Create() { } + public void Create(bool largeCanvas) { AllowTiling = largeCanvas;