У мене є сітка з трьома колонками. Мені потрібно, щоб ширина стовпця була розрахована за таким сценарієм:
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>
Ви можете мати число замість "Авто", щоб зберегти розмір цих стовпців фіксованим.