Kann einen mathematischen operator angewendet werden, um die Bindung Weg?
Habe ich Folgendes (die ActualWidth
geteilt durch 2)?
<StackPanel Name="SP2" Width="{Binding ElementName=SP1, Path=ActualWidth/2}">
Scheint nicht zu funktionieren für mich.
Dank.
Was versuchen Sie zu tun? Holen Sie sich
Bitte verwenden Sie nicht
ja, dass war es, was ich versuche zu tun. Ich will SP2, um die Hälfte der Breite des SP1 jedes mal, wenn das Fenster in der Größe geändert wird.
danke für den Tipp.
Legen Sie die beiden Stapel Platten im inneren eine zweispaltige raster, mit Spaltenbreiten "2*," * " bzw.
Width
einstellen, bis die Hälfte des Wertes von SP1.ActualWidth
? Wenn dem so ist, ein Converter
ist wahrscheinlich das, was Sie suchen.Bitte verwenden Sie nicht
ActualWidth
in Bindungen, da es sich nicht um eine Abhängigkeitseigenschaft und nicht unbedingt das tun, was Sie erwarten. Siehe Fragen stackoverflow.com/questions/7403151 (WPF) und stackoverflow.com/questions/1602148 (Silverlight).ja, dass war es, was ich versuche zu tun. Ich will SP2, um die Hälfte der Breite des SP1 jedes mal, wenn das Fenster in der Größe geändert wird.
danke für den Tipp.
Legen Sie die beiden Stapel Platten im inneren eine zweispaltige raster, mit Spaltenbreiten "2*," * " bzw.
InformationsquelleAutor Old Geezer | 2012-06-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie einen benutzerdefinierten Konverter einfache Berechnungen direkt in XAML.
Schauen Sie, zum Beispiel, in dieser Umsetzung:
MathConverter
Einfache Nutzung:
Den klassischen Ansatz ist die Erstellung einer readonly-Eigenschaft berechnet.
So, in diesem einfachen Fall können Sie eine zweite Eigenschaft
HalfWidth
.Die schlechte Nachricht ist, dass, wenn
ActualWidth
aktualisiert wird, werden dieStackPanel
auf die view gebundenHalfWidth
wird nicht aktualisiert.Dies ist, weil die Ansicht nicht weiß, dass
HalfWidth
geändert hat.Durch die Erhöhung einer Eigenschaft geändert-Ereignis auf
HalfWidth
im setterActualWidth
wird die AbfrageHalfWidth
und damit das abrufen des korrekten Wert.Den Haupt-proplem, über diesen Ansatz ist, dass es bald zu einem Albtraum, als wir berechnet haben zahlreiche Eigenschaften, für die kein setter.
Deshalb (in einem MVVM-pattern) ich persönlich bevorzuge die Verwendung eines benutzerdefinierten Konverter.
Geezer, ich habe meine Antwort aktualisiert
InformationsquelleAutor Paolo Moretti
Nein, Sie können nur Eigenschaften (und Indizes in arrays/collections in einigen Fällen) in der Bindung.
Stattdessen müssen Sie entweder binden Sie an eine notify-Eigenschaft gibt den soll-Wert (z.B. ActualWidth/2), oder verwenden Sie einen Konverter, der einen Wert zurückgibt, mit Ihrer Berechnung angewendet.
InformationsquelleAutor Gone Coding