我有下一个布局
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Image Grid.Row="0" Grid.RowSpan="2" Grid.Column="0" Width="60" Height="60" />
<StackPanel Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2" Orientation="Horizontal">
<TextBlock Text="Title should be long" HorizontalAlignment="Left" />
<Ellipse Fill="White" Stroke="White" Width="7" Height="7" />
</StackPanel>
<TextBlock Grid.Row="1" Grid.Column="1" Text="Message" />
<TextBlock Grid.Row="1" Grid.Column="2" Text="Info" />
</Grid>
我在托管标题和椭圆的 StackPanel 中有一个问题,目标是椭圆的在线标记应该放在标题的末尾。但它不应该超出视图部分。
我试图将 TextBox 和 Ellipse 放入 Grid 的单元格中,不幸的是它没有帮助。
<Grid Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2">
<Grid.ColumnsDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnsDefinitions>
<TextBlock Grid.Column="0" Text="Title should be long" HorizontalAlignment="Left" />
<Ellipse Grid.Column="1" Fill="White" Stroke="White" Width="7" Height="7" />
</Grid>
在我看来,它应该呈现正确,但椭圆再次不在视野范围内。
这是一个 Expression Blend 布局截图,相同的布局在运行时呈现。
网格边界:
文本框边界:
椭圆边界:
所以 TextBox 和 Ellipse 不在网格中:(
更新:我需要布局的下一个行为
1) 短标题,附在标题末尾的椭圆
2)长标题,附在容器右侧的椭圆