Laden...

WPF - Path Data-Binding im Codebehind setzen

Erstellt von Jochen1980 vor 8 Jahren Letzter Beitrag vor 8 Jahren 2.798 Views
J
Jochen1980 Themenstarter:in
111 Beiträge seit 2006
vor 8 Jahren
WPF - Path Data-Binding im Codebehind setzen

Hallo,

ich möchte den folgenden Ausdruck in C# Code Behind konvertieren, komme jedoch mit der Syntax nicht zurecht. Würde mir bite jemand helfen?


<Path Data="M 58 [...] z" Fill="{Binding Foreground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=TabItem}}" />

Dieser XAML Code funktioniert so wie ich mir das vorstelle: Ist ein TabItem angewählt, so beommt der Path des Bildes eine andere Hintergrundfarbe.


Path aPath = new Path();
aPath.Data = Geometry.Parse(sImagePath);
Binding fillBinding = new Binding("Foreground");
fillBinding.ElementName = sTabPageName; // sTabPageName ist der Name eines TabItem
BindingOperations.SetBinding(aPath, "Fill", fillBinding); // <- funktioniert so nicht

5.658 Beiträge seit 2006
vor 8 Jahren

Was ist deine Frage dazu? Um welchen Syntax geht s dir?
Christian

Weeks of programming can save you hours of planning

J
Jochen1980 Themenstarter:in
111 Beiträge seit 2006
vor 8 Jahren

Der XAML-Code sollte in C# "übersetzt" werden. Mein eigener Versuch muss jedoch irgend einen Fehler haben, da er nicht funktioniert.
Ich möchte im Code Behind ein Binding einem Path hinzufügen, sodass dieser Path für die Eigenschaft "Fill" die Foregroundcolor des TabItems nutzt.

5.658 Beiträge seit 2006
vor 8 Jahren

Da die meisten soetwas im XAML definieren, wird sich wohl kaum jemand hier so gut damit auskennen, daß er mit deinen Infos eine Lösung finden würde.

Hast du denn eine Fehlermeldung? Oder gibt es während der Laufzeit einen DataBinding-Fehler im Ausgabefenster? Wird der Pfad korrekt geparst? Hat sTabPageName auch den richtigen Namen, und ist das TabItem im derzeitigen Kontext vorhanden und zugreifbar?

Christian

Weeks of programming can save you hours of planning

2.207 Beiträge seit 2011
vor 8 Jahren

Ich sehe keinen Grund, warum man sowas im Codebehind machen sollte.

Kanns grad nicht nachbauen/ausprobieren. Aber hast du schonmal
Define the path data from code behind in silverlight
oder
WPF C# Path: How to get from a string with Path Data to Geometry in Code (not in XAML)

ausprobiert?

T
461 Beiträge seit 2013
vor 8 Jahren

Gehts vielleicht so?:


aPath.SetBinding(Path.FillProperty, fillBinding);

bei mir klappte es aber ich kenn ja Deinen genauen Code nicht..

Grüße

Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄

J
Jochen1980 Themenstarter:in
111 Beiträge seit 2006
vor 8 Jahren

Danke für eure Hilfe! Der letzte Hinweis von ThomasE. hat mein Problem gelöst!