我们有一个包含3列的WPF布局,我希望中心列是流动的,而out列是静态宽度。
中间列包含Textblock。当我将中心列设置为Width =“Auto”时,它仍然存在不是流体宽度的问题。
我的XAML目前位于下方,我附上了一张混合图片。中心Textblock应该是流畅的,但它似乎在它包裹之前在其他地方占用了一些宽度。我没有设置其他宽度。
<Grid Style="{DynamicResource showAttendeesItemGrid}" Margin="0" MinWidth="640">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="220" />
</Grid.ColumnDefinitions>
<Rectangle Grid.ColumnSpan="3" Style="{DynamicResource showAttendeesItemGridBackgroundRectangle}" MinWidth="640" RenderTransformOrigin="0.684,0.56"/>
<StackPanel Grid.Column="0" x:Name="LeftPanel" Margin="10,0,0,0" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Left">
<TextBlock x:Name="Title" TextWrapping="Wrap" Text="Non-Member Toddler" FontWeight="Bold" FontSize="26.667"/>
<TextBlock x:Name="SubTitle" TextWrapping="Wrap" VerticalAlignment="Top" Text="Ages 0-3" FontFamily="Futura" FontSize="13.333" Margin="0,2,0,0" HorizontalAlignment="Left"/>
</StackPanel>
<TextBlock Grid.Column="1" x:Name="Description" TextWrapping="Wrap" FontSize="16" Margin="0,0,0,0" Visibility="Visible" Text="Max based on attendee selection: 1. this gets even long er now taht that shis is why what?" Height="50" MinWidth="50" MaxWidth="300"/>
<StackPanel Grid.Column="2" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right">
<TextBlock x:Name="Price" TextWrapping="Wrap" Text="$7.00" Margin="0" Foreground="Green" VerticalAlignment="Center" FontSize="24" Width="70" HorizontalAlignment="Left"/>
<local:ucQuantityIncrementer Grid.Column="3" x:Name="Count" VerticalAlignment="Center" Margin="0" ButtonSize="33" NumberSize="34" FontSize="48" NumberBoxWidth="60" ButtonIconSize="32" HorizontalAlignment="Right" Width="140"/>
</StackPanel>
<!--
<StackPanel Style="{DynamicResource showAttendeesItemContentStackPanel}" MaxWidth="1240" MinWidth="0" Width="640">
</StackPanel>-->
<Path x:Name="TopLine" Data="M368,17.7 L367,87.7" Margin="0,1,0,0" Stretch="Fill" Stroke="#FF898989" VerticalAlignment="Top" Height="1"/>
<Path x:Name="BottomLine" Data="M368,17.7 L367,87.7" Margin="0,1,0,0" Stretch="Fill" Stroke="#FF898989" VerticalAlignment="Bottom" Height="1"/>
</Grid>
答案 0 :(得分:1)
您需要删除MaxWidth
属性。
答案 1 :(得分:1)
宽度Auto
表示&#34;将此列的大小调整为此列的子项所需的大小&#34;。由于您的TextBlock的MaxWidth
为300,因此该列的子列所需的大小为300,因此该列的大小将为该列的大小。
宽度*
表示&#34;调整此列的大小以占用所有可用空间,按比例分配所有其他星号列&#34;。由于您只有1个星大小的列,因此中间列将占用所有可用空间。
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="220" />
</Grid.ColumnDefinitions>