我知道如何对齐文本框,但是在WrapPanel的情况下,内部有多个文本框,我无法设法找到使整个文本居中对齐的方法,还试图通过内部TextBlocks来制作一个TextBlock ,但没有办法:
<GridViewColumn Header="{x:Static p:Resources.Priorite}" Width="70">
<GridViewColumn.CellTemplate>
<DataTemplate>
<WrapPanel HorizontalAlignment="Center">
<TextBlock HorizontalAlignment="Center" TextAlignment="Center">
<TextBlock Text="{Binding PrioriteMin}"/>
<TextBlock Text=" - " />
<TextBlock Text="{Binding PrioriteMax}"/>
</TextBlock>
</WrapPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
答案 0 :(得分:1)
您的问题是,创建显示单元格内容的FrameworkElement
时,它会复制相应ListViewItem
中的对齐方式属性。导致HorizontalAlignment.Left
。
您可以在此处详细了解每个值的作用:https://docs.microsoft.com/de-de/dotnet/framework/wpf/advanced/alignment-margins-and-padding-overview
因此,要实现所需的功能,必须将HorizontalContentAlignment
上的Stretch
设置为ListViewItem
。
<ListView>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
</ListView>
答案 1 :(得分:-2)
您可以使用样式来定位WrapPanel中的TextBlock:
<WrapPanel>
<WrapPanel.Resources>
<Style TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
</WrapPanel.Resources>
<TextBlock>MyText</TextBlock>
<TextBlock>MyText2</TextBlock>
<WrapPanel>
尽管我可能误解了该要求,但我认为上述方法对您来说应该可行。
答案 2 :(得分:-3)
您提供的示例似乎使水平居中对齐就好了!
<WrapPanel HorizontalAlignment="Center">
做到了,您甚至不需要
HorizontalAlignment="Center" TextAlignment="Center"
针对您的textBlock