I current имеет приложение WPF, которое содержит ListBox
из Grid
элементов.Всегда сохраняйте ширину столбца в WPF
Эти решетки имеют по 2 столбца каждый, а первый столбец содержит текст, а второй содержит эллипс.
Моя проблема в том, что у меня в настоящее время установлены как ColumnDefinition
, так и ширина .5*
, поэтому каждый из них занимает 50% от общей ширины. Однако это не работает, когда текст слишком длинный, или же он выталкивает эллипс во втором столбце из строя с остальными эллипсами в списке (смотря вертикально сверху вниз).
В основном это то, что я получаю:
То, что я хотел бы случиться, не имеют все elipses в линию, независимо от того, сколько времени текст в первом столбце.
Я попытался разместить текст первого столбца внутри ViewBox
, чтобы автоматически его настроить, но это тоже не работает.
Вот полный XAML для DataTemplate
:
<Grid x:Name="MainTermServListGrid">
<Grid.RowDefinitions>
<RowDefinition x:Name="MainTermServMainRow"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding TServer}" FontSize="15" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<Grid x:Name="OldPathGrid" Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".5*"/>
<ColumnDefinition Width=".5*"/>
</Grid.ColumnDefinitions>
<Viewbox Grid.Column="0" Stretch="Uniform">
<TextBlock Grid.Column="0">
<Run Text="Path: "/>
<Run Text="{Binding OldPath}"/>
</TextBlock>
</Viewbox>
<Ellipse Grid.Column="1" HorizontalAlignment="Center" Width="{Binding ElementName=MainTermServListGrid, Path=ActualHeight}" Fill="{Binding IsOldPathValid, Converter={StaticResource ValPthToBgClr}}"/>
</Grid>
<Grid x:Name="NewPathGrid" Grid.Column="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".5*"/>
<ColumnDefinition Width=".5*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0">
<Run Text="Path: "/>
<Run Text="{Binding NewPath}"/>
</TextBlock>
<Ellipse Grid.Column="1" Width="{Binding ElementName=MainTermServListGrid, Path=ActualHeight}" Fill="{Binding IsNewPathValid, Converter={StaticResource ValPthToBgClr}}"/>
</Grid>
</Grid>
Вы можете вставить таблицу данных из списка? – kanchirk
Добавил его в мое главное сообщение @kanchirk – user2357446
The, 5 это полностью избыточно. Если вы установите ширину столбца только в «*», они разделится на 50% для каждого из двух столбцов. – user3690202