2009-07-23 36 views
0

我已经用一组控件设置了一个StackPanel。每个控件都是同一个类的一个实例。该控件也是一个堆栈面板,并具有另一个自定义控件。所以:Silverlight RenderTransforms可供儿童使用吗?

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

RenderTransform应用于顶层堆栈面板。正如预期的那样,所有的儿童控制措施都相应地扩展这很棒,直到我到达最后一个Listbox控件。在这种情况下,我希望比例尺被忽略,或者以不同的方式处理(比如反方向)。

有什么办法可以从转换中排除控件吗?或者,我可以评估Listbox内的转换吗?

感谢

回答

1

您可以应用改造完全相反,虽然它可能需要一些时间才能得到恰到好处。

如果在代码中执行该操作,则可以使用VisualTreeHelper遍历树并读取正确的值。

或者,你可能会做的创意某种:

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