У меня есть ScatterViewItem, который содержит Canvas
<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>
Я хотел бы предоставить пользовательскую форму, чтобы форма прямоугольника по умолчанию не отображалась (вот изображение моего текущегореализация .
Я следовал этому примеру здесь текст ссылки и ознакомился с головоломкой, которая поставляется с 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)
Я немного запутался в вышеприведенном коде, так как мое понимание строки
item.Content = poly
перезаписало бы содержимое ScatterViewItem (т.е. в моем случае Canvas или в другом случае, скажем, Image).В настоящее время мне не нужно перемещать или масштабировать элемент ScatterView, чтобы не было необходимости в тенях, я просто хочу удалить прямоугольное поле.