/ / Як встановити перший стовпець сітки, щоб він містив вільний простір після того, як усі інші стовпці зайняли необхідну ширину? - wpf

Як встановити перший стовпець сітки, щоб він містив вільний простір після того, як всі інші стовпці взяли необхідну ширину? - wpf

У мене є сітка з трьома колонками. Мені потрібно, щоб ширина стовпця була розрахована за таким сценарієм:

1. Другий і третій стовпці приймають необхідну ширину від сітки (для простоти, що означає, що колонка2.ширина + колонка3.ширина завжди менше сітки. ширина).

2. Після того, як перший стовпець бере всю доступну ширину, залишену 2-м і 3-м стовпцями (тобто 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 для відповіді № 1

Ширина стовпця може приймати наступні значення,
1.Кількість
Фіксований розмір.
2.Auto
Ширина стовпця = ширина вмісту комірки.
3. * (зірка / зірочка)
Ширина стовпця = вільний простір у сітці.

Наступний код дасть бажаний результат,

                            <Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

Ви можете мати число замість "Авто", щоб зберегти розмір цих стовпців фіксованим.