Шаблон данных ширины 100% в пользовательском элементе управления Silverlight - PullRequest
1 голос
/ 24 февраля 2009

У меня есть пользовательский элемент управления Silverlight, расширяющий Panel. Мне требуется, чтобы шаблон данных (корневой узел является панелью стека) занимал 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 голосов
/ 08 марта 2012

Я бы сказал, что вы должны рассмотреть возможность наследования от ItemsControl вместо Panel. Сгенерированные элементы в ItemsControl по умолчанию будут занимать всю ширину.

0 голосов
/ 24 февраля 2009

Добавление ширины = "*" к панели стека

Упс, который работает в Grid Row, определения столбцов.

Почему вы в любом случае переопределяете код меры? Автоматическое поведение Width заключается в использовании доступного пространства. Аналогично, ширина на панели является стандартным свойством FrameworkElement Width.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...