получить доступ к размеру окна xaml DataTemplate WPF - PullRequest
0 голосов
/ 12 мая 2018

Итак, у меня есть следующий xaml на данный момент:

<Window.Resources>
    <DataTemplate x:Key="MailTemplate">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Path=Date}" Width="150"/>
            <TextBlock Text="{Binding Path=Subject}" Width="300"/>
            <TextBlock Text="{Binding Path=From.DisplayName}" Width="125"/>
        </StackPanel>
    </DataTemplate>
</Window.Resources>

Это шаблон элемента ListBox.Фактические детали не имеют большого значения, это просто атрибут Width.Есть ли способ получить доступ к размеру окна, чтобы установить ширину?Я не хочу, чтобы ширина была постоянной, я хочу, чтобы текстовые блоки могли изменять размеры, если вы растягиваете окно.

1 Ответ

0 голосов
/ 12 мая 2018

Вы можете сделать это, не устанавливая фиксированную ширину для элементов TextBlock, и используйте Grid с звездообразным размером вместо StackPanel в качестве контейнера.Например, как это:

<DataTemplate x:Key="MailTemplate">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="150*" />
            <ColumnDefinition Width="300*" />
            <ColumnDefinition Width="125*" />
        </Grid.ColumnDefinitions>

        <TextBlock Grid.Column="0" Text="{Binding Path=Date}" />
        <TextBlock Grid.Column="1" Text="{Binding Path=Subject}" />
        <TextBlock Grid.Column="2" Text="{Binding Path=From.DisplayName}" />
    </Grid>
</DataTemplate>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...