2009-07-23 10 views
0

Ich habe ein StackPanel mit einer Reihe von Steuerelementen eingerichtet. Jedes Steuerelement ist eine Instanz derselben Klasse. Das Steuerelement ist auch ein Stack-Panel und verfügt über ein weiteres benutzerdefiniertes Steuerelement. Also:Silverlight RenderTransforms für Kinder verfügbar?

StackPanel: 
    CustomControl1: 
      StackPanel: 
        CustomControl2: 
         ListBox 
    CustomControl1: 
      StackPanel: 
        CustomControl2: 
         ListBox 
    CustomControl1: 
      StackPanel: 
        CustomControl2: 
         ListBox 

Die RenderTransform wird am oberen Stapel Panel angewendet. Wie erwartet, skalieren alle untergeordneten Steuerelemente entsprechend. Das ist großartig, bis ich zu diesem letzten Listbox-Steuerelement komme. In diesem Fall möchte ich, dass die Skala entweder ignoriert oder anders behandelt wird (wie in umgekehrter Richtung).

Gibt es eine Möglichkeit, ein Steuerelement von der Umwandlung auszuschließen? Alternativ kann ich die Transformation aus der Listbox auswerten?

dank

Antwort

1

Sie könnten genau die Umkehrung der Transformation anwenden, obwohl es einige Zeit richtig hinzubekommen nehmen kann.

Wenn Sie dies im Code tun, können Sie VisualTreeHelper verwenden, um den Baum nach oben zu gehen und die richtigen Werte zu lesen.

Alternativ können Sie tun, irgendeine Art von kreativen:

StackPanel: 
StackPanel: APPLY transformation HERE instead for the first 2 
    CustomControl1: 
     StackPanel: 
       CustomControl2: 
         ListBox 
    CustomControl1: 
     StackPanel: 
       CustomControl2: 
         ListBox 
CustomControl1: 
     StackPanel: 
       CustomControl2: 
        ListBox 
Verwandte Themen