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
Was ist deine Frage dazu? Um welchen Syntax geht s dir?
Christian
Weeks of programming can save you hours of planning
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.
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
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?
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
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... 😄
Danke für eure Hilfe! Der letzte Hinweis von ThomasE. hat mein Problem gelöst!