访问窗口大小xaml DataTemplate WPF

时间:2018-05-12 17:59:22

标签: c# wpf

所以,我现在有以下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属性。 有没有办法访问窗口的大小,以设置宽度?我不希望宽度保持不变,我希望TextBlocks能够在拉伸窗口时改变大小。

1 个答案:

答案 0 :(得分:1)

您可以通过不在TextBlock元素上设置任何固定宽度来实现这一点,并使用Gridstar-sizing而不是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>