布局内的WPF文本块扩展
我有以下XAML代码:布局内的WPF文本块扩展,wpf,layout,textblock,Wpf,Layout,Textblock,我有以下XAML代码: <DataTemplate x:Key="TileViewDT"> <DockPanel> <StackPanel Height="40.5" DockPanel.Dock="Right" Margin="5,2,5,2" VerticalAlignment="Bottom"> <TextBlock x:Name="Name" TextWrapping
<DataTemplate x:Key="TileViewDT">
<DockPanel>
<StackPanel Height="40.5" DockPanel.Dock="Right" Margin="5,2,5,2" VerticalAlignment="Bottom">
<TextBlock x:Name="Name" TextWrapping="Wrap" Text="{Binding XPath=@Name}" Width="132" />
<TextBlock x:Name="Size" Foreground="DarkGray" TextWrapping="Wrap" Text="{Binding XPath=@Size}" />
</StackPanel>
<Image x:Name="Img" Source="BtnImg/Computer.png" Stretch="Fill" Margin="10,0,5,0" Width="48" Height="48"/>
</DockPanel>
</DataTemplate>
输出:
我正在尝试尽可能多地获得Windows资源管理器的相同外观,因此当文本较短且名称文本的长度大于项目空间时,我希望将文本块“名称”和“大小”都保留在中间,以获得此外观:
那么我如何才能做到这一点呢?我认为在Stackpanel中,您应该设置MaxHeight而不是设置Height,垂直对齐属性值应该是Center而不是Bottom,这应该可以完成您的工作:
<DataTemplate x:Key="TileViewDT">
<DockPanel>
<StackPanel MaxHeight="40.5" DockPanel.Dock="Right" Margin="5,2,5,2" VerticalAlignment="Center">
<TextBlock x:Name="Name" TextWrapping="Wrap" Text="{Binding XPath=@Name}" Width="132" />
<TextBlock x:Name="Size" Foreground="DarkGray" TextWrapping="Wrap" Text="{Binding XPath=@Size}" />
</StackPanel>
<Image x:Name="Img" Source="BtnImg/Computer.png" Stretch="Fill" Margin="10,0,5,0" Width="48" Height="48"/>
</DockPanel>
</DataTemplate>
希望它能工作 还有一个问题,当textBlock有两行时,如何减少第一行和第二行之间的间距?将textBlock LineStackingStrategy=“BlockLineHeight”和LineHeight属性设置为所需的任何值。