Вертикальное выравнивание содержимого PathListBox - PullRequest
0 голосов
/ 17 декабря 2011

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

enter image description here

<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 Ответ

1 голос
/ 17 декабря 2011

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

...
<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, и оно работает.

...