我正在为我正在构建的Silverlight控件构建一个CheckBoxList,而我在使用它时遇到了一些麻烦。
我所追求的是一个CheckBoxList,它将CheckBoxes垂直包装在* height的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的高度吗?
答案 0 :(得分:0)
如果有人碰到这个并且还不知道,则在Silverlight 5中添加了RelativeSource