Xaml 对齐网格中右侧的控件
我有一个3列的网格:Xaml 对齐网格中右侧的控件,xaml,windows-phone-7,windows-phone-8,windows-store-apps,windows-phone-8.1,Xaml,Windows Phone 7,Windows Phone 8,Windows Store Apps,Windows Phone 8.1,我有一个3列的网格: <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> 我想让最后一列在右边对齐,靠近屏幕边缘。 目前,第三列出现在第二列之后不久。我不想通过像素宽度,而是自动计
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
我想让最后一列在右边对齐,靠近屏幕边缘。
目前,第三列出现在第二列之后不久。我不想通过像素宽度,而是自动计算
我尝试在第三列属性HorizontalAlignment=“Right”中的元素上使用,但不幸的是,它不起作用。如果网格中有相同类型的控件,则可以在
中为所有控件指定样式,仅当grid.column属性的值为2时才设置HorizontalAlignment属性(带触发器)。
但是,通过所有子级循环,检查每个子级的column属性,然后设置对齐方式更容易,如
foreach (Control ctrl in yourGrid.Children) {
if(Grid.GetColumn(ctrl) == 2) ctrl.HorizontalAlignment = HorizontalAlignment.Right;
}
由于您的上一列具有
Auto
宽度,因此不需要将内容的horizontalalignment
设置为Right
。我的猜测是
网格
没有水平对齐
值拉伸
(应为默认值),或者网格
(a堆栈面板
可能?)的内容都没有提供完整的宽度我可以确定是否可以检查XAML的其余部分。首先检查这两件事。如果这两件事没有帮助,请发布XAML的其余部分。如果您的网格位于Stackpanel内部,无论您做什么,它都只会将自身调整为Stackpanel的宽度
如果最后一列定义为“自动”,则无法将其与屏幕右侧对齐。将第二列定义更改为“自动”,将最后一列定义更改为*网格本身是否跨越整个屏幕?是的,它跨越了整个集装箱?我不理解您的问题,那么您的代码中有哪些部分工作不符合预期?您能否发布一个屏幕截图,说明如何操作它的外观和第二个显示其外观的图像?而且,如果您的网格位于DataTemplate内,则必须将使用此模板的控件的HorizontalContentAlignment设置为拉伸。