Проблема с шириной * (звезда) в сетке WPF - ColumnDefinition

Я пробовал ColumnDefinition Width="5*", а также с 3*, 1* для ColumnDefinition , который применяется к контейнеру Grid, а родительским элементом управления является ListBox, но он не отражает ожидаемую ширину. обратитесь к коду XAML, как показано ниже

       <StackPanel Height="Auto" HorizontalAlignment="Left">
     <ListBox x:Name="myListView2" BorderThickness="0" Background="#635F5F">
    <ListBox.ItemsPanel>
     <ItemsPanelTemplate>
     <StackPanel Background="#635F5F" HorizontalAlignment="Left" VerticalAlignment="Stretch" Orientation="Vertical" />
     </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBox.ItemTemplate>
     <DataTemplate>
      <Border BorderThickness="10" BorderBrush="#413e3e" Background="#413e3e" Margin="5, 5, 5, 5" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Center">
    <Grid>
     <Grid.ColumnDefinitions>
      <ColumnDefinition Width="5*"></ColumnDefinition>
      <ColumnDefinition Width="3*"></ColumnDefinition>
      <ColumnDefinition Width="1*"></ColumnDefinition>
     </Grid.ColumnDefinitions>
     <Grid.RowDefinitions>
      <RowDefinition></RowDefinition>
      <RowDefinition></RowDefinition>
      <RowDefinition></RowDefinition>
      <RowDefinition></RowDefinition>
     </Grid.RowDefinitions>
    
     <TextBlock Style="{StaticResource GridRows}" Grid.Row="0" Grid.Column="0" Text="{Binding OrderNumber}" ></TextBlock>
     <TextBlock Style="{StaticResource GridRows}" Grid.Row="0" Grid.Column="1" Text="{Binding LABEL}" ></TextBlock>
     <TextBlock Style="{StaticResource GridRows}" Grid.Row="0" Grid.Column="2" Text="{Binding Amount}" ></TextBlock>
    
     <TextBlock Style="{StaticResource GridRows}" Grid.Row="1" Grid.Column="0" Text="{Binding Size}" Margin="0, 5, 0, 0"></TextBlock>
     <Border BorderThickness="1" Height="25" Width="30" BorderBrush="red" Background="Red" CornerRadius="10" Grid.Row="1"  Grid.Column="1"  HorizontalAlignment="Left">
      <TextBlock FontSize="9" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding LabelRadius}" />
     </Border>
     <TextBlock Style="{StaticResource GridRows}" Grid.Row="1" Grid.Column="2" Text="{Binding AmountVal1}" Margin="0, 5, 0, 0" ></TextBlock>
    </Grid>
      </Border>
     </DataTemplate>
    </ListBox.ItemTemplate>
      </ListBox>
     </StackPanel>
     </StackPanel>

1 ответ

Это может сработать, если вы установите ширину сетки:

      <Grid Width="300">
 <Grid.ColumnDefinitions>
  <ColumnDefinition Width="5*"></ColumnDefinition>
  <ColumnDefinition Width="3*"></ColumnDefinition>
  <ColumnDefinition Width="1*"></ColumnDefinition>
 </Grid.ColumnDefinitions>
 <Grid.RowDefinitions>
  <RowDefinition></RowDefinition>
  <RowDefinition></RowDefinition>
  <RowDefinition></RowDefinition>
  <RowDefinition></RowDefinition>
 </Grid.RowDefinitions>

 <TextBlock Style="{StaticResource GridRows}" Grid.Row="0" Grid.Column="0" Text="{Binding OrderNumber}" ></TextBlock>
 <TextBlock Style="{StaticResource GridRows}" Grid.Row="0" Grid.Column="1" Text="{Binding LABEL}" ></TextBlock>
 <TextBlock Style="{StaticResource GridRows}" Grid.Row="0" Grid.Column="2" Text="{Binding Amount}" ></TextBlock>

 <TextBlock Style="{StaticResource GridRows}" Grid.Row="1" Grid.Column="0" Text="{Binding Size}" Margin="0, 5, 0, 0"></TextBlock>
 <Border BorderThickness="1" Height="25" Width="30" BorderBrush="red" Background="Red" CornerRadius="10" Grid.Row="1"  Grid.Column="1"  HorizontalAlignment="Left">
  <TextBlock FontSize="9" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding LabelRadius}" />
 </Border>
 <TextBlock Style="{StaticResource GridRows}" Grid.Row="1" Grid.Column="2" Text="{Binding AmountVal1}" Margin="0, 5, 0, 0" ></TextBlock>
Другие вопросы по тегам