A haben eine ListBox mit Elementen, jedes ListBoxItem enthält ein Symbol in Form eines Path
-Objekts, etwa so:
Der Stil des Pfads ist in Appl.xaml
( Application.Resources
section) enthalten und lautet wie folgt:
Das Problem ist, dass nur das erste Element in der ListBox die Data
Eigenschaft wie erwartet bindet, die anderen es überhaupt nicht binden (daher erscheinen sie als Leerzeichen, stimmen aber mit der Größe von Path
überein) ). Auch wenn ich den Stil irgendwo anders verwende (d. H. Außerhalb der ListBox), bindet nur die erste Instanz, die auftritt.
Das Seltsame ist, dass wenn ich zum Beispiel die Fill
-Eigenschaft in Style
anstelle von inline definiere, es gut funktioniert und nicht dieselben Probleme wie die Path
-Eigenschaft aufweist.
Meine Vermutung ist, dass etwas damit zu tun hat, dass Data
kein primitiver Typ ist, aber ich habe keine Korrekturen gefunden.
BEARBEITEN: Interessanterweise funktioniert es, wenn ich die Eigenschaft Data
direkt an System.String
ressource anbinde. Ich möchte trotzdem diese Eigenschaft über einen Style definieren können.
BEARBEITEN SIE 2: Ich habe gerade das gleiche Problem in WPF, beim Festlegen von Pfad zu einem Inhalt einer Schaltfläche über einen Stil, der über mehrere Schaltflächen verwendet wird. Der Pfad wird in nur einer Schaltfläche angezeigt, die anderen sind leer.
Path.Fill ist eine DependencyProperty, PathData nicht. Stattdessen tun:
%Vor% ContentPresenter.Content
ist eine DependencyProperty, also sollte dies funktionieren:
Ich habe das gleiche Verhalten in Silverlight erlebt und eine ähnliche Frage hier auf StackOverflow.com gestellt ( Ссылка ), aber während ich dies schreibe, war es schon 1 Monat und ich habe noch keine einzige bekommen antworte.
Wie Sie bereits in Ihrer ersten Bearbeitung erwähnt haben, konnte ich jedoch eine Umgehung durchführen, indem ich eine Ressource mit meinen Geometriedaten als String erstellte und dann die Data
-Eigenschaft der Path
-Objekte an die String-Ressource anbinde Ressource.
Ich musste auch zwei Instanzen der Path
-Objekte erstellen, die mit Ausnahme einer anderen Ressource identisch waren (dh zwei verschiedene Symbole) und dann die Sichtbarkeit der einzelnen Objekte an eine Eigenschaft in meinem ViewModel banden, um die entsprechenden Objekte anzuzeigen eins.
Mein erster Gedanke war, dass dein Pfad kaputt wäre oder nicht gültig wäre. Aber dann habe ich gesehen, dass du das Syncfusion Metro Studio benutzt. Ich habe es mit genau dem gleichen Code versucht, den Sie haben, und es hat sehr gut funktioniert. In einer Datenvorlage mit 5 Elementen oder als einzelnes Pfadelement.
Haben Sie versucht, die Füllung statisch auf Rot oder etwas einzustellen?
Versuchen Sie es auch mit der Style-Definition
%Vor%Der dritte Vorschlag wäre, die Style-Definition von der App auf Ihre Seite oder sogar auf Ihre Control selbst zu verschieben.
Um sicherzustellen, dass keine Standardstile angewendet werden, versuchen Sie
%Vor%Hoffe das hilft:)
Tags und Links wpf styles windows-phone-7 xaml