The fact that I can select items that are marked as not editable is not so important. Indeed, this way I can create connectors from the write-protected items. However, my main problem now is: even if I set IsEditable and the other corresponding properties to false, some sorts of manipulations are still possible.
IsEditable = false;
IsDraggingEnabled = false;
IsResizingEnabled = false;
IsRotationEnabled = false;
IsManipulationAdornerVisible = false;
For most manipulation types, I found a workaround:
- allow to select only a single template shape, removing all others in the SelectionChanged event
- binding the SettingsPane visibility to SelectedItem.IsEnabled
- intercept delete key and ctrl-x when template shape is selected
- remove all template shapes before serialization, readd them after serializing
However, I'm still wondering if there would be a more convenient way...