0

我很想为我正在构建的 Silverlight 控件构建一个 CheckBoxList,但我在正确处理它时遇到了一些麻烦。

我所追求的是一个 CheckBoxList,它将 CheckBoxes 垂直包装在 * 高度的 GridRow 内。我遇到的问题是我想将 WrapPanel 的高度指定为它所在行的高度。

在 WPF 中,它如下所示:

<ScrollViewer BorderThickness="0"
              HorizontalScrollBarVisibility="Auto" 
              VerticalScrollBarVisibility="Hidden" >
    <ItemsControl Name="ic">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <toolkit:WrapPanel Orientation="Vertical"
                                    Height="{Binding Path=ActualHeight,
                                            RelativeSource={RelativeSource Mode=FindAncestor, 
                                            AncestorType={x:Type ScrollContentPresenter}}}" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <CheckBox Content="{Binding Path=Description}" Margin="0,0,10,2" FontSize="12"/>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</ScrollViewer>

Silverlight 不以相同的方式支持 RelativeSource,因此我无法以与 WPF 相同的方式来支持它。我已经看到了 RelativeSource 的一些变通方法,但它们要么非常冗长,要么我似乎无法让它们工作。

肯定有一种简单的方法可以在 Silverlight 中设置 WrapPanel 的高度吗?

4

1 回答 1

0

万一有人遇到这个并且还不知道,RelativeSource 将被添加到 Silverlight 5

于 2011-03-16T16:40:53.687 回答