WPF 路径几何;在顶部绘制一个带有居中箭头的框
WPF Path Geometry; drawing a box with a centred arrow on the top
我想画一个简单的盒子,上面有一个“箭头”居中,但我似乎无法让那个箭头居中(如下例所示,箭头总是向左偏移)...
这是我的 XAML(这实际上在模板中,但我认为这不是问题所在)...
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="16" />
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle Grid.Row="2"
Fill="{TemplateBinding Background}" />
<ContentPresenter Grid.Row="2"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}"
Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
<Path HorizontalAlignment="Center"
Grid.Row="1"
Fill="{TemplateBinding Background}"
Data="M -8,0 L 0,-16 8,0" />
</Grid>
ContentPresenter 的“内容”是一个 StackPanel,它可能有也可能没有 TextBlock 子级。
我做错了什么?
只要 Stretch
是 None
,路径的 ActualWidth
和 ActualHeight
(因此它的对齐方式)就不会考虑其几何的部分在负坐标处绘制。
改为
<Path HorizontalAlignment="Center" Data="M 0,0 L 8,-16 16,0" ... />
或
<Path HorizontalAlignment="Center" Data="M -8,0 L 0,-16 8,0"
Stretch="Uniform" Width="16" Height="16" ... />
我想画一个简单的盒子,上面有一个“箭头”居中,但我似乎无法让那个箭头居中(如下例所示,箭头总是向左偏移)...
这是我的 XAML(这实际上在模板中,但我认为这不是问题所在)...
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="16" />
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle Grid.Row="2"
Fill="{TemplateBinding Background}" />
<ContentPresenter Grid.Row="2"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}"
Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
<Path HorizontalAlignment="Center"
Grid.Row="1"
Fill="{TemplateBinding Background}"
Data="M -8,0 L 0,-16 8,0" />
</Grid>
ContentPresenter 的“内容”是一个 StackPanel,它可能有也可能没有 TextBlock 子级。
我做错了什么?
只要 Stretch
是 None
,路径的 ActualWidth
和 ActualHeight
(因此它的对齐方式)就不会考虑其几何的部分在负坐标处绘制。
改为
<Path HorizontalAlignment="Center" Data="M 0,0 L 8,-16 16,0" ... />
或
<Path HorizontalAlignment="Center" Data="M -8,0 L 0,-16 8,0"
Stretch="Uniform" Width="16" Height="16" ... />