Необходимо предоставить некоторый интерфейс (сохранить / редактировать / загрузить) для динамически генерируемых стилей, которые формируются из GeometryDrawings.Проблема заключается в различии между ними в ситуации, когда им не хватает свойства Name.Я пробовал что-то вроде этого:
// some dummy predefined style, it has more drawings but i keep first one
const string templateXaml = @"<DrawingBrush xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"" xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"" Stretch=""Uniform"">
<DrawingBrush.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Geometry=""F1 M 77,92L 704,92L 704,517L 77,517L 77,92 Z "" x:Name=""test_name"">
<GeometryDrawing.Pen>
<Pen Thickness=""4"" LineJoin=""Round"" Brush=""#FFFF7D00""/>
</GeometryDrawing.Pen>
</GeometryDrawing>
<!--More drawings here -->
</DrawingGroup.Children>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>";
var drawingBrush = XamlReader.Parse(templateXaml) as DrawingBrush;
var firstDrawing = (drawingBrush.Drawing as DrawingGroup).Children[0] as GeometryDrawing;
//..
var name = firstDrawing.GetValue(NameProperty);
//..
firstDrawing.SetValue(FrameworkElement.NameProperty, "some value");
Я хотел бы иметь x: Name здесь в переменной имени (или что-то вроде этого), чтобы иметь возможность изменить его и затем сериализовать, чтобы получить, например,тот же стиль, но с разными именами для рисунков (case теперь они называются Element1,2,3 ..., и должны быть названы в соответствии с предметной областью, и эта обработка должна быть автоматической, но не ручной в связи с тем, что естьнет возможности сделать это только для WYSIWYG - каждый чертеж помещается в Visual, визуальные элементы помещаются в пользовательский FrameworkElement и т. д.).Конечно, весь процесс работы с чертежами - это боль, но это требование к проектированию системы, которое я не могу игнорировать.Заранее спасибо.