我试图将Path
居中,以使其原点(0,0)位于其容器的底部中心。假设容器是Grid
。
示例:
注意:箭头的尾部位于原点(0,0)。尾部水平居中,但整体箭头向左倾斜。无论箭头指向哪个方向,这都是我想要实现的目标。
这需要适用于x和y坐标为正,负或两者混合的路径。
如何通过标记最少的XAML完成此操作?
答案 0 :(得分:0)
嗯......底部中间的位置取决于容器。尝试这样的事情:
<Grid>
<Path Stroke="Black"
StrokeThickness="1"
VerticalAlignment="Bottom"
HorizontalAlignment="Center"
Data="M 0,0 L -50,-70 L -50,-80" />
</Grid>
答案 1 :(得分:0)
这就是我最终的目标。似乎工作,但如果有更清洁的方法,我很乐意听到它:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Path Grid.Column="1"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
StrokeThickness="1"
Data="{Binding PathGeometry}" />
</Grid>
答案 2 :(得分:0)
这是我一直在使用的。只需在任何地方绘制路径,然后将其转换为所需的起点。您可以使用Bindings将其居中在网格中。这允许将几何体放置在网格中的任何位置。
<Grid>
<Path Stroke="Black"
StrokeThickness="1">
<Path.Data>
<PathGeometry>
<!-- Your path geomrtry -->
</PathGeometry>
</Path.Data>
<Path.RenderTransform>
<TranslateTransform Y="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Grid}, Path=ActualHeight, Converter={StaticResource widthAndHeightDivider}}"
X="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Grid}, Path=ActualWidth, Converter={StaticResource widthAndHeightDivider}}"/>
</Path.RenderTransform>
</path>
</Grid>
并使用以下转换器,将网格的ActualWidth除以to,使其居中:
public class WidthAndHeightDivider : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
double d = (double)value / 2.0;
return d;
}
}
我希望这有帮助!