Вертикальное выравнивание содержимого PathListBox

У меня есть элемент управления, содержащий PathListBox из Blend SDK (см. XAML ниже). Предметы внутри имеют одинаковую ширину и разную высоту. В настоящее время средние точки предметов следуют траектории дуги (см. Рисунок), то есть они четко расположены по центру. Тем не менее, я бы хотел, чтобы элементы top были выровнены вертикально, чтобы их вершина следовала траектории дуги. Как я могу это сделать?

<Grid x:Name="LayoutRoot">
    <ec:PathListBox Margin="160,290,-30,-250">
        <ec:PathListBox.LayoutPaths>
            <ec:LayoutPath SourceElement="{Binding ElementName=arc}" 
                Padding="-25"  FillBehavior="NoOverlap" 
                Distribution="Even"  Span="0.5"/>
        </ec:PathListBox.LayoutPaths>
        <Rectangle Fill="#FFF4F4F5" Height="103" Width="100"/>
        <Rectangle Fill="#FFF4F4F5" Height="120" Width="100"/>
        <Rectangle Fill="#FFF4F4F5" Height="140" Width="100"/>
        <Rectangle Fill="#FFF4F4F5" Height="265" Width="100"/>
        <Rectangle Fill="#FFF4F4F5" Height="100" Width="100"/>
        <Rectangle Fill="#FFF4F4F5" Height="265" Width="100"/>
    </ec:PathListBox>
    <ed:Arc x:Name="arc" 
        ArcThickness="10"  ArcThicknessUnit="Pixel"  Margin="160,290,-30,-250" 
        Stretch="None"  Stroke="Transparent"  StartAngle="-7" 
        RenderTransformOrigin="0.5,0.5"  StrokeThickness="3" 
        Opacity="0.155" Fill="LightGray">
        <ed:Arc.RenderTransform>
            <TransformGroup>
                <ScaleTransform ScaleY="1" ScaleX="-1"/>
                <SkewTransform AngleY="-17" AngleX="-16"/>
                <RotateTransform Angle="0"/>
                <TranslateTransform/>
            </TransformGroup>
        </ed:Arc.RenderTransform>
    </ed:Arc>
</Grid>

1 ответ

Решение

Просто измените поля ваших ритов:

...
<Rectangle Fill="Green" Height="103" Width="100" Margin="0,130,0,0"/>
<Rectangle Fill="Green" Height="120" Width="100" Margin="0,120,0,0"/>
<Rectangle Fill="Green" Height="140" Width="100" Margin="0,140,0,0"/>
<Rectangle Fill="Green" Height="265" Width="100" Margin="0,265,0,0"/>
<Rectangle Fill="Green" Height="100" Width="100" Margin="0,100,0,0"/>
<Rectangle Fill="Green" Height="265" Width="100" Margin="0,265,0,0"/>
...

Я сам попробовал это на Blend4, и это работает.

Другие вопросы по тегам