У меня есть ScatterViewItem, который содержит CanvasScatterViewItem Custom Shape
<Ellipse x:Name="Outer_Ellipse" Fill="White" Width="200" Height="200"></Ellipse>
<Ellipse Fill="Red" Canvas.Top ="15" Canvas.Left="15" Canvas.Right="15" Canvas.Bottom="15" Width="170" Height="170" ></Ellipse>
</Canvas>
</s:ScatterViewItem>
Id хотел, чтобы обеспечить пользовательскую фигуру, так что форма прямоугольника по умолчанию не показывает (здесь картина моего тока реализация .
Я следил за этим примером здесь link text и проконсультировался с головоломкой, которая поставляется с SDK, но я не могу заставить ее работать, мой ScatterViewItem пуст.
Я определил путь в SurfaceWindow.Resources
<Path x:Key="ScatterShape" Fill="Blue">
<Path.Data>
<EllipseGeometry
RadiusX="200"
RadiusY="200">
</EllipseGeometry>
</Path.Data>
</Path>
И скопирован атрибутами стиля из приведенной выше ссылки. Я создал свой CustomShape.cs в соответствии с инструкциями, а затем создал ScatterViewItem.
System.Windows.Shapes.Path path;
path = (System.Windows.Shapes.Path)Resources["ScatterShape"];
CustomShape poly = new CustomShape(path.Data);
ScatterViewItem item = new ScatterViewItem();
item.Content = poly;
item.CanScale = false;
Binding binding = new Binding();
binding.Source = poly;
item.SetBinding(ScatterViewItem.DataContextProperty, binding);
scatter.Items.Add(item)
Im слегка путать с выше коде, поскольку мое понимание с линией
item.Content = poly
бы перезаписать содержимое ScatterViewItem (то есть в моем случае Canvas или в другом случае говорят изображения). Пока мне не нужно перемещать или масштабировать элемент ScatterView, поэтому никаких теней не требуется, просто я хочу просто удалить прямоугольную рамку.
Спасибо за ответ, действительно оценен. Я потратил несколько часов, пытаясь следовать примеру Jigsaw в SDK и не получил нигде. Я не понял, как просто это сделать с помощью ControlTemplate. – Bear