我有一个有三列的网格。我需要在以下场景中计算列的宽度:
1.第二列和第三列从网格中获取所需的宽度(为简单起见,сolumn2.width+ column3.width是 总是小于grid.Width)。
2.在第一列之后,第二列和第三列留下所有可用宽度(即col1 = grid.width - (col2.Width + col3.W))。
此外,如果第一列的文本不适合其宽度,则应将其包装(即文本的高度应增加以显示其内容)。
我试过了
<DataTemplate DataType="{x:Type s:DiagramDataList}">
<ListView ItemsSource="{Binding DataElementList}"
HorizontalContentAlignment="Stretch"
Background="Transparent"
Focusable="False"
IsHitTestVisible="False"
BorderThickness="0"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition ></ColumnDefinition>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Path=Title}"
Grid.Column="0"
TextWrapping="Wrap"></TextBlock>
<TextBlock Text="{Binding Path=CurrentValue}"
Grid.Column="1"></TextBlock>
<TextBlock Text="{Binding Path=Difference}"
Grid.Column="2"
HorizontalAlignment="Right"
Background="{Binding HtmlColor, Converter={StaticResource HtmlColorToColorConverter}}"
Visibility="{Binding Path=Difference, Converter={StaticResource NullToVisibilityConverter}}"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</DataTemplate>
答案 0 :(得分:0)
列的宽度可以采用以下值,
的 1.Number 强>
固定尺寸
的 2.Auto 强>
列宽=细胞含量的宽度
第3 *(星/星号)强>
列宽=网格中的可用空间。
以下代码将给出所需的输出,
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
您可以使用数字代替&#34;自动&#34;保持这些列大小固定。