windows - 列表项中的嵌套 UI 未正确水平对齐
问题描述
我正在尝试将列表视图项内的嵌套 UI(按钮)水平对齐到右侧,但由于某种原因,这不起作用。
预期结果
当前结果
XAML
<controls:MasterDetailsView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Margin="0,8">
<TextBlock Text="{Binding From}"
Style="{ThemeResource SubtitleTextBlockStyle}"/>
<TextBlock Text="{Binding Body}"
Style="{ThemeResource BodyTextBlockStyle}"
Opacity=".6"
MaxLines="1"/>
</StackPanel>
<Button Grid.Column="1"
Background="Transparent"
Content=""
FontFamily="Segoe MDL2 Assets"
HorizontalAlignment="Right"
VerticalAlignment="Top"
Margin="10"
Padding="10" />
</Grid>
</DataTemplate>
</controls:MasterDetailsView.ItemTemplate>
解决方案
您可以在 ItemContainerStyle 中将ListViewItem的Horizo ntalContentAlignment 设置为Stretch。它将拉伸子元素以填充 MasterDetailsView 的分配空间。
.xaml:
<controls:MasterDetailsView ItemsSource="{x:Bind Items,Mode=OneWay}" CompactModeThresholdWidth="720">
<controls:MasterDetailsView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</controls:MasterDetailsView.ItemContainerStyle>
<controls:MasterDetailsView.ItemTemplate>
......
</controls:MasterDetailsView.ItemTemplate>
</controls:MasterDetailsView>
推荐阅读
- java - 如何在 Java 中使用自定义异常?我已按照步骤操作,但没有让我的 catch 子句起作用
- regex - 使用 sed 提取斜线之间的匹配组,grep 中断特殊字符
- ruby - 如何使用 ruby 设计 Web UI
- javascript - 如何限制 div 拖动空间?(没有 jQuery)
- java - Spring Boot MVC 战争日志没有写入 catalina.ot
- javascript - 如何从express node.js中的对象req数据转换为字符串
- python - keyError: 0 使用 sklearn 管道/keras fit
- python - 我该如何解决
在 Python 中? - angular6 - 在 Angular 上更新 mat-table
- powershell - SCCM Powershell 非常详细的部署状态消息