Starting at 100.5, the EditConfiguration of the SketchEditor of the MapView is null, which causes my 100.4 code to crash. How can I get it to be populated so that I can manipulate it?
Solved! Go to Solution.
Hello, Mark!
Each time StartAsync is called on the SketchEditor, it creates a default SketchEditConfiguration with parameters that make sense for that particular shape (e.g. circles are scaled in an aspect-ratio-preserving way, but ellipses are not). The intended use of EditConfiguration property is to override these defaults after each StartAsync call, to modify the defaults based on context. Admittedly, this quirk was not well-documented.
Previous versions of Runtime set EditConfiguration property to a placeholder object between operations. Confusingly, modifying that object didn't actually have any effect on the next operation, because calling StartAsync just replaced the object with a new one. Starting with Runtime 100.5, this property is set to NULL between operations. This behavior change draws attention to accidental misuse of this API -- the software affected by this change was already silently doing something unexpected.
To summarize, you can either use StartAsync overload which accepts a SketchEditConfiguration parameter, or modify EditConfiguration after calling StartAsync.
Looks like I need to use a different overload of StartAsync and pass in the EditConfiguration.
Hello, Mark!
Each time StartAsync is called on the SketchEditor, it creates a default SketchEditConfiguration with parameters that make sense for that particular shape (e.g. circles are scaled in an aspect-ratio-preserving way, but ellipses are not). The intended use of EditConfiguration property is to override these defaults after each StartAsync call, to modify the defaults based on context. Admittedly, this quirk was not well-documented.
Previous versions of Runtime set EditConfiguration property to a placeholder object between operations. Confusingly, modifying that object didn't actually have any effect on the next operation, because calling StartAsync just replaced the object with a new one. Starting with Runtime 100.5, this property is set to NULL between operations. This behavior change draws attention to accidental misuse of this API -- the software affected by this change was already silently doing something unexpected.
To summarize, you can either use StartAsync overload which accepts a SketchEditConfiguration parameter, or modify EditConfiguration after calling StartAsync.
Huh, I thought my partial modes were working, but I guess I didn't explore thoroughly enough. Thanks!