我想要在Grid
中顯示一些text data
,它有三列,中間列的寬度是其他兩列的兩倍,佔用整個網格的寬度。 text
很長,需要打包。我無法工作(從過去的其他查詢中,我發現其他人也遇到過類似的問題)正在使用自動換行和調整網格大小來工作。我所擁有的是:文字環繞,網格和明星大小調整
<Window.Resources>
<local:DTData x:Key="dtData" />
</Window.Resources>
<StackPanel DataContext="{StaticResource dtData}">
<ListBox ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border x:Name="a" Grid.Column="0" Margin="4"/>
<TextBlock Margin="4" Grid.Column="0" TextWrapping="Wrap"
Text="{Binding A}" Width="{Binding ActualWidth, ElementName=a }" MinWidth="100"/>
<Border x:Name="b" Grid.Column="1" Margin="4"/>
<TextBlock Margin="4" Grid.Column="1" TextWrapping="Wrap"
Text="{Binding B}" Width="{Binding ActualWidth, ElementName=b }" MinWidth="100"/>
<Border x:Name="c" Grid.Column="2" Margin="4"/>
<TextBlock Margin="4" Grid.Column="2" TextWrapping="Wrap"
Text="{Binding C}" Width="{Binding ActualWidth, ElementName=b }" MinWidth="100"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
它使用從WPF TextBox and Scroll behavior的Border
招迫使文本換工作,但列的寬度或者是設定的最小寬度或最長的單詞,如果更大。
有誰知道一種方法來強制列以適應網格的寬度?
的可能的複製[我如何與明星定義WPF網格列夾內容?] (http://stackoverflow.com/questions/25567474/how-do-i-get-wpf-grid-columns-defined-with-star-to-clip-content) – Starceaker 2016-02-15 07:41:04