yFiles for Avalonia Changelog
Changes of yFiles for Avalonia Release Candidate 1 - Changes Since EAP 3
Categories: Improvements Bug Fixes API Changes Behavior Changes
Improvements
-
Replaced Transform with
ITransformin the public API for enhanced flexibility. -
CanvasControl.ExportContentnow returns aControlinstead of a simpleVisual. -
CollapsibleNodeStyleDecorator'sButtonPlacementnow supports arbitrarily rotated buttons instead of only paraxial buttons. -
LabelStylenow supports aFontFeatureCollectionthat accepts a list ofFontFeatureobjects to enable/disable specificOpenTypetypography features (e.g., ligatures, tabular numbers, small caps). -
DropInputModesnow supports predefinedDataFormatslikeDataFormat.File. Constructors forDropInputModeand subclasses accept aDataFormatinstead of a String, enabling file drag-and-drop functionality. -
A drag preview has been added to the Drag&Drop support while dragging outside the
CanvasControl. -
Built-in hotkeys now automatically use the command (⌘) key instead of Ctrl on macOS in Desktop applications. To also
customize this in cases where the automatic detection fails (notably
WebAssemblyapplications) you can manually set theEventRecognizers.CommandModifiersproperty early in application startup. -
The hotkeys for built-in commands, as configured in the respective resource files, now support a custom modifier
named Shortcut, which uses the aforementioned
EventRecognizers.CommandModifiersproperty and thus acts as expected on macOS where such hotkeys do not use Ctrl. - Ctrl+Click now opens a context menu on macOS.
- During drag and drop operations the cursor now indicates whether it is valid or invalid to drop an item at the current location.
-
A public
Cursorsclass facilitates a custom cursor styling by providing properties for the different cursors used by the different input modes. -
LassoSelectionInputMode: an indicator highlights the region where a lasso selection can be finished.
Bug Fixes
-
Fixed an issue that caused the icon in
IconLabelStyleto be positioned incorrectly. -
Fixed a bug where the pen buttons
StylusBarrelandStylusEraserwere not correctly determined. - Fixed a bug which caused the cursor to change back to default when moved with the mouse button held down.
- Fixed stylus support when running an application in a browser.
-
Fixed
ImageNodeStylenot always using the image shape correctly for lasso selection testing. This could lead to nodes withImageNodeStylebeing selected by lasso selection although their image representation wasn't included in the lasso. - Fixed an issue that caused candidate indicators for edge labels to be rendered at the wrong position.
-
Fixed an issue that caused the
TextBoxfor vertical text editing to be positioned incorrectly. - Fixed an issue that caused candidate indicator corners for edge labels to be rendered incorrectly on small boxes.
-
Fixed broken binding between key gestures and commands added via
KeyboardInputMode.AddCommandBinding. - Fixed an exception when a key is pressed during a drag and drop operation.
- Fixed GraphML serialization for styles and other non-structural elements.
-
Fixed an issue that caused an exception when setting
LayoutExecutor.RunInThreadto true in aWASM/browser. -
Fixed a bug which prevented the
PointerUpevent from being dispatched for aStylusBarrel. -
Fixed a
NullReferenceExceptionthat occurred when aGraphControlwas removed from itsTopLevelwhile an animation was running. -
The
BendLocationChangedevent now uses the correct value for the y coordinate of theoldLocation. -
Fixed a bug which could cause an exception when rendering a
CollapsibleNodeStyleDecorator. -
Fixed
MemoryImageNodeStyle.Clone()to create an independent copy instead of sharing internal style state with the original instance. -
Fixed
ShapePortStyle.Clone()to create an independent copy instead of sharing internal style state with the original instance. -
Fixed a bug on Linux where modifier keys were not always correctly set on
PointerEventArgs.
Incompatible API Changes
-
The convenience methods
ExportToGraphMLandImportFromGraphMLas well as theGraphMLIOHandlerproperty have been removed fromGraphControl. Applications should hold their ownGraphMLIOHandlerinstance instead and use its Read and Write methods. -
The (non-functional) commands
Open,Save, andSaveAshave been removed fromGraphCommands. -
Class
ComponentResourceKeyhas been removed. Usages thereof are now of typeobject. -
CanvasContentHost.BackgroundBrushProperty,BackgroundBrush,PrimaryBrushProperty,PrimaryBrush,SecondaryBrushProperty, andSecondaryBrushhave been removed. -
The type of
GraphControl's propertiesSelectionIndicatorManagerProperty,HighlightIndicatorManagerProperty,FocusIndicatorManagerProperty,GraphModelManagerProperty,SelectionProperty,HighlightsProperty, andClipboardPropertyhas been changed fromStyledPropertytoDirectPropertywhich better matches their intended use. -
The type of
CanvasControl's propertiesContentHostProperty,InputModeProperty,ZoomProperty, andViewPointPropertyhave been changed fromStyledPropertytoDirectPropertywhich better matches their intended use. -
The delegate
CanExecuteCommandHandlerhas been renamed toCanExecuteCommandEventHandlerand the source parameter has been removed. -
The delegate
ExecuteCommandHandlerhas been renamed toExecutedCommandEventHandlerand the source parameter has been removed. -
The fields
GraphCommands.MoveFocusBackandMoveFocusForwardhave been renamed toMoveFocusLeftandMoveFocusRight. -
TextEditorInputMode.TextBoxStyleKeyhas been removed. Styling theTextBoxfor label editing can be done with Styles matching theyfiles-labeleditboxclass.
Incompatible Behavior Changes
-
CanvasControl,GraphControl, andGraphOverviewControlno longer override the default value for the Template property and thus have no template if the yFiles Styles are not included in the application. This is consistent with other Avalonia controls, which are by default lookless and rely on the Styles to have a template.
Changes of yFiles for Avalonia EAP 3 - Changes Since EAP 2
Categories: Improvements Bug Fixes API Changes
Improvements
- yFiles for Avalonia now supports Avalonia 12.
-
Added a custom non-native drag and drop support which supports drag and drop operations using Touch and Stylus, too.
The
DropInputMode,NodeDropInputMode,LabelDropInputMode,PortDropInputMode, andStripeDropInputModeprovide staticDoDragDropAsyncmethods to start the drag and drop operations. -
Drag and drop operations supported by the drop input modes now require an
IDataTransferinstead of the deprecatedIDataObject. StaticCreateDataTransfermethods faciltate the creation of an appropriate item. -
The
ToolTipInputMode.ToolTipproperty is now of typeToolTipinstead ofPopup. -
The type of the
CanvasControl.Projectionproperty has been changed from Transform toITransform. This makes it easy to e.g. applyTransformOperationsto the projection.
Bug Fixes
-
ToolTipshandled by theToolTipInputModenow also works correctly when the application runs in the browser.
Incompatible API Changes
- yFiles for Avalonia now requires at least Avalonia 12.0.0.
-
The drop input modes
DropInputMode,ItemDropInputMode,NodeDropInputMode,PortDropInputMode,LabelDropInputMode, andStripeDropInputModenow require anIDataTransferinstead of the deprecatedIDataObject. -
The
CollapsibleNodeStyleDecorator.CollapseButtonStyleKeyfield andButtonStyleproperty have been removed. Styling the collapse button now works with regular Avalonia styling (via theyfiles-collapsebuttonclass) instead ofControlThemes.
Changes of yFiles for Avalonia EAP 2 - Changes Since EAP 1
Categories: New Features Improvements Bug Fixes
New Features
-
NodeControlNodeStyleallows for rendering nodes using Avalonia styles and selectors. -
EdgeSegmentControlEdgeStyleallows for rendering edges using Avalonia styles and selectors. -
LabelControlLabelStyleallows for rendering labels using Avalonia styles and selectors. -
PortControlPortStyleallows for rendering ports using Avalonia styles and selectors. -
StripeControlStripeStyleallows for rendering stripes using Avalonia styles and selectors. -
Method
ExportToBitmaponCanvasControlnow allows to export the canvas as bitmap image. -
The new
PixelImageExporterclass supports exporting aCanvasControlto a bitmap image.
Improvements
- Added more demos and a better demo overview page.
Bug Fixes
- Fixed an issue preventing focus indicator from being shown.
-
GroupNodeStyle's button which toggles the expansion state now reacts on first click. -
The drop shadow of
GroupNodeStyleis now placed correctly. - Theme colors now work properly, which affect the marquee rectangle, handles, as well as selection, focus, and highlight indicators.
-
Fixed distorted rendering of selection, focus, and highlight indicators when a projection is set on the
GraphControl. -
Fixed a possible exception in label rendering when the
TextWrappingShapehas been set to something other than Rectangle. - Fixed text wrapping into irregular shapes.
-
With the
EdgeStyleIndicatorRendererclass, the bends of the intermediate edges that are used for rendering now correctly have the tag object of the corresponding original bend. -
Key bindings (
KeyboardInputMode.AddKeyBinding) now overwrite earlier added bindings. - After moving a folder node in closed state with orthogonal edge editing enabled, folding edges no longer get incorrect additional segments when the folder is expanded.