Silverlight自定义控件中的100%宽度数据模板

时间:2009-02-24 10:49:19

标签: silverlight

我有一个扩展Panel的自定义Silverlight控件。我要求数据模板(根节点是堆栈面板)占用100%的可用宽度 - 但是,目前堆栈面板只填充文本的宽度。

我的控制中的安排覆盖:

protected override Size MeasureOverride(Size availableSize)
{
    foreach (FrameworkElement element in Children)
    {
        element.Measure(new Size(availableSize.Width, availableSize.Height));
    }
    return base.MeasureOverride(availableSize);
}

我的模板:

<DataTemplate x:Name="itemTemplate">
    <StackPanel Background="Aqua" HorizontalAlignment="Stretch">
        <TextBlock TextWrapping="Wrap" Text="{Binding Name}" HorizontalAlignment="Stretch"/>
    </StackPanel>
 </DataTemplate>

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

将“宽度=”*“添加到StackPanel

在网格行,列定义中工作的哎呀。

为什么要覆盖Measure代码呢? Width的自动行为是使用可用空间。类似地,面板上的Width是标准的FrameworkElement Width属性。

答案 1 :(得分:0)

我会说你应该考虑继承ItemsControl而不是Panel。默认情况下,ItemsControl中生成的元素将占用整个宽度。