Skip to content

Releases: mircea21S/RichCanvas

v3.0.1

22 Aug 09:18

Choose a tag to compare

  • Breaking Changes:
  • Features:
  • Bugfixes:
    • Fixed ScrollOwner null reference exception when RichCanvas is not wrapped in a ScrollViewer

v3.0.0

21 Aug 20:50

Choose a tag to compare

  • Breaking Changes:
    • Renamed RichItemsControl to RichCanvas
    • Renamed RichItemContainer to RichCanvasContainer
    • Renamed RichCanvas to RichCanvasPanel
    • Removed PanningGrid (scrolling is now handled inside main control class and needs to be wrapped in a ScrollViewer)
    • Removed RichCanvas.HorizontalScrollBarVisibility dependency property
    • Removed RichCanvas.VerticalScrollBarVisibility dependency property
    • Removed RichCanvas.SelectionEnabled dependency property
    • Removed RichCanvas.EnableNegativeScrolling dependency property
    • Removed RichCanvas.ExtentSize dependency property
    • Removed RichCanvas.PanningKey dependency property
    • Removed RichCanvas.ZoomKey dependency property
    • Removed RichCanvas.DisableScroll dependency property
    • Removed RichCanvas.GridStyle dependency property
    • Removed RichCanvas.TranslateOffset dependency property
    • Removed Scrolling routed event
    • Renamed Scale dependency property to ViewportZoom
    • Replaced ViewportRect to ViewportSize dependency property
  • Features:
    • All default operations of RichCanvas work now based on states classes derived from CanvasState class
    • Interactions between them and input gestures are defined through a state obtained from method RichCanvas.GetDefaultState()
      • Inheriting RichCanvas and overriding this method will let you define your own states and orchestration of them
    • Default states:
      • DefaultState
      • DrawingState
      • MultipleSelectionState
      • SingleSelectionState
      • PanningState
    • All default operations of RichCanvasContainer work now based on states classes derived from ContainerState class
    • Interactions between them and input gestures are defined through a state obtained from method RichCanvasContainer.GetDefaultState()
      • Inheriting RichCanvasContainer and overriding this method will let you define your own states and orchestration of them
    • Default states:
      • ContainerDefaultState
      • DraggingContainerState
    • Added configurable input gestures for RichCanvas and RichCanvasContainer default offerd operations (through states) to RichCanvasGestures
    • Added CurrentState, PushState and PopState to RichCanvas and RichCanvasContainer
    • Added MultiGesture utlity for combining multiple input gestures into one gesture
    • Added MouseKeyGesture utility for combining a MouseGesture with a Key[] or KeyGesture[] into one gesture
    • Added UI Automation framework AutomationPeer classes for RichCanvas and RichCanvasContainer for discoverability when using UI Automation tools based on UIA framework from Microsoft
    • Added RichCanvasContainer.AllowScaleChangeToUpdatePosition dependency property to control the position update when scaling is changed.
    • Changed IsPanning property on RichCanvas from internal to public
    • Added RichCanvas.DrawingEndedCommand dependency property invoked after an item has been drawn
    • Added RichCanvas.ViewportLocation depenedency property to get or set the viewport's top-left coordinates in graph space coordinates
    • Added RichCanvas.ItemsExtent dependency property to get the area covered by the RichCanvasContainers present on RichCanvas
  • Bugfixes:
    • Items added to the ItemsSource that are valid for drawing are now handled in the correct order and reacting to any changes like removing or moving