2009-03-01 9 views

Antwort

17

Es ist etwas unklar von Ihrer Frage, aber ich denke, Sie fragen, wie man an die angefügte Eigenschaft Canvas.Left binden und es in einer TextBox anzeigen würde. Ich nehme an, Sie wollen es für ein anderes Steuerelement als die TextBox.

<Canvas> 
    <TextBox x:Name="textBox" Text="{Binding ElementName=button, Path=(Canvas.Left)}" /> 
    <Button x:Name="button" Content="Press me" /> 
</Canvas> 

Beachten Sie die Klammern um die angefügte Eigenschaft.

EDIT: das Äquivalent in Code Verwenden Sie dazu die folgenden Schritte aus:

Binding binding = new Binding(); 
binding.Source = button; 
binding.Path = new PropertyPath(Canvas.LeftProperty); 
textBox.SetBinding(TextBlock.TextProperty, binding); 
+1

Code-Bindung funktioniert nicht wie in Beispielcode. Die dritte Zeile sollte wie folgt lauten: binding.Path = new PropertyPath (Canvas.Left); – Matze

+0

Danke ageektrapped. Aber ich suche einen Weg pro Codebehind, genau nach C#. Ich kenne den Weg per WPF. – Taladan

-3

Ja, eine Leinwand hat keine linke Eigenschaft. Es ist eine angefügte Eigenschaft für ein FrameworkItem in einem Canvas-Inhalt.

<Canvas Width="100" Height="100"> 
    <TextBox Name="top" Canvas.Left="12"></TextBox> 
</Canvas> 
+2

Dies beantwortet die Frage überhaupt nicht. – trapicki

Verwandte Themen