Dafür gibt es einen sehr guten Grund nicht zu verwenden ActualWidth
zu binden (offensichtlich ActualHeight
entsprechend). Wenn Sie die Width
eines Elements, zum ActualWidth
eines anderen können Sie die Layout-Kette unterbrechen .
Im besten Fall muss Ihr Element/Steuerelement geparst werden, nachdem der Layoutprozess des übergeordneten Elements (der Bindungsquelle) abgeschlossen ist. Das bedeutet zusätzliche Zeit. Befindet es sich auf derselben Hierarchieebene wie das übergeordnete Element, benötigt der Layoutprozess mindestens zwei Durchläufe, um eine endgültige Größe zu berechnen.
Ich hatte zum Beispiel ein Steuerelement, dessen Größeneigenschaft in einem Stil überschrieben wurde, der es auf den Wert TemplatedParent
(nicht tun) :
<Rectangle DockPanel.Dock="Top" Width="{TemplateBinding ActualWidth}"
Height="1" Fill="#000000"/>
Wenn die Größe des Fensters, das es enthält, geändert wird, verhindert das Steuerelement, dass der Container kleiner wird und bremst das Layout. Die Einstellung auf den Width
wird das Problem lösen (do) :
<Rectangle DockPanel.Dock="Top" Width="{TemplateBinding Width}"
Height="1" Fill="#000000"/>
Wenn Sie die ActualWidth
im Allgemeinen ist etwas mit Ihrer Xaml falsch. Besser beheben, dass statt durcheinander mit den endgültigen Größen des Layouts laufen.