C# 获取对窗口大小xaml数据模板WPF的访问权限
现在我有以下xaml-C# 获取对窗口大小xaml数据模板WPF的访问权限,c#,wpf,C#,Wpf,现在我有以下xaml- <Window.Resources> <DataTemplate x:Key="MailTemplate"> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding Path=Date}" Width="150"/> <TextBlock Text="{Binding Path
<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>
它是列表框项目的模板。
实际的细节并不重要,只是关于宽度属性。
是否有办法访问窗口大小以设置宽度?我不希望宽度保持不变,我希望如果您拉伸窗口,TextBlock能够改变大小。您可以通过在
TextBlock
元素上不设置任何固定宽度来实现,并使用网格作为容器,而不是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>
除了网格,还有其他面板:UniformGrid、StackPanel、DockPanel、WrapPanel。您甚至可以通过从类派生来使用自定义布局逻辑创建自己的面板。我再说一遍,非常感谢!