J'ai un ScatterViewItem qui contient une toileScatterViewItem 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 aiment fournir une forme personnalisée de sorte que la forme du rectangle par défaut est montre pas (ici une photo de mon courant la mise en œuvre .
J'ai suivi cet exemple ici link text et ont consulté le casse-tête qui vient avec le SDK, mais je suis incapable de le faire fonctionner, mon ScatterViewItem est vide.
I défini un chemin dans les SurfaceWindow.Resources
<Path x:Key="ScatterShape" Fill="Blue">
<Path.Data>
<EllipseGeometry
RadiusX="200"
RadiusY="200">
</EllipseGeometry>
</Path.Data>
</Path>
Et copier les attributs de style à partir du lien ci-dessus. J'ai créé mon CustomShape.cs comme indiqué et ensuite créé le 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 légèrement confondu avec le code ci-dessus depuis mon accord avec la ligne
item.Content = poly
écraserait le contenu du ScatterViewItem (i.e. dans mon cas la toile ou dans un autre cas dire une image). Pour l'instant, je n'ai pas besoin de déplacer ou de mettre à l'échelle l'objet ScatterView, donc aucune ombre n'est nécessaire. Je veux simplement retirer la boîte rectangulaire.
Merci pour la réponse, vraiment appréciée. J'avais passé des heures à essayer de suivre l'exemple du puzzle dans le SDK et je n'avais nulle part où. Je n'avais pas réalisé à quel point il était simple d'utiliser le ControlTemplate. – Bear