所以,我现在有以下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能够在拉伸窗口时改变大小。
答案 0 :(得分:1)
您可以通过不在TextBlock
元素上设置任何固定宽度来实现这一点,并使用Grid
与star-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>