[英]WPF make a streched TextBlock shrink when window is resized
我有一個顯示文件詳細信息的列表。 我設計了 ItemTemplate 以在調整窗口大小時拉伸 DirectoryName TextBox。
<ListView ItemsSource="{Binding LogFolderContent}" SelectedItem="{Binding SelectedLogFile}" HorizontalContentAlignment="Stretch">
<ListView.ItemTemplate>
<DataTemplate>
<DockPanel>
<TextBlock Text="{Binding LastWriteTime" DockPanel.Dock="Right"/>
<TextBlock Text="{Binding Name}" DockPanel.Dock="Left"/>
<TextBlock Text="{Binding DirectoryName}" DockPanel.Dock="Left" Margin="10,0,10,0"/>
</DockPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
不幸的是,當 DirectoryName 很長或調整窗口大小時,LastWriteTime 從視圖中消失。
我非常希望始終顯示 LastWriteTime 並且要做到這一點,我希望縮小 TextBlock 以不以不涉及任何側邊欄的方式顯示 DirectoryName 的左側部分。
是否可以?
這應該這樣做:
<ListView ItemsSource="{Binding LogFolderContent}" SelectedItem="{Binding SelectedLogFile}" HorizontalContentAlignment="Stretch">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Name}" />
<TextBlock Grid.Column="1" Text="{Binding DirectoryName}"/>
<TextBlock Grid.Column="2" Text="{Binding LastWriteTime}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
顯然,我所要做的就是禁用作為ListView
控件一部分的ScrollViewer
,並將DirectoryName
HorizontalAlignment
更改為Right
以便在調整窗口大小時從左側消失。
<ListView ItemsSource="{Binding LogFolderContent}" SelectedItem="{Binding SelectedLogFile}" HorizontalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.ItemTemplate>
<DataTemplate>
<DockPanel>
<TextBlock Text="{Binding LastWriteTime}" DockPanel.Dock="Right"/>
<TextBlock Text="{Binding Name}" DockPanel.Dock="Left"/>
<TextBlock Text="{Binding DirectoryName}" HorizontalAlignment="Right" DockPanel.Dock="Left" Margin="10,0,10,0"/>
</DockPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
現在看起來像這樣:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.