Соедините StackPanels и Border с помощью линии - PullRequest
1 голос
/ 19 февраля 2011

У меня есть собственный элемент управления, полученный из StackPanel. Этот элемент управления содержит два других элемента управления, первый Border (с TextBlock внутри) и StackPanel (способный содержать другие StackPanels).
Теперь, когда я добавляю новую StackPanel во внутреннюю StackPanel, я хотел бы нарисовать линию, которая могла бы соединить границу с новой добавленной StackPanel.
Я предполагаю, что это может быть обработано в коде, поэтому, когда мне нужно добавить StackPanel, я мог бы определить его местоположение и расположение границ, и основываясь на этом, я мог бы нарисовать линию. Итак, мой вопрос: можете ли вы найти какие-либо другие способы достижения того же результата? Как сохранить связь между Border и StackPanel, когда один из элементов перетаскивает макет? Спасибо за помощь БР Ярек

1 Ответ

0 голосов
/ 16 апреля 2011

Вы можете сделать это очень просто, сделав что-то вроде этого:

<Grid x:Name="LayoutRoot" Background="White">
    <StackPanel>
        <Border Margin="10 0 0 0" BorderBrush="Black" BorderThickness="5 0 0 0" >
            <TextBlock Text="MyText" Margin="5 0 0 0 " />
        </Border>
        <StackPanel Margin="10 0 0 0" Orientation="Vertical">
            <Border  BorderBrush="Black" BorderThickness="5 0 0 0">
                <TextBlock Text="Sub-Item 1" Margin="15 0 0 0" />
            </Border>
            <Border  BorderBrush="Pink" BorderThickness="5 0 0 0">
                <TextBlock Text="Sub-Item 2" Margin="15 0 0 0" />
            </Border>
            <Border  BorderBrush="Black" BorderThickness="5 0 0 0">
                <TextBlock Text="Sub-Item 3" Margin="25 0 0 0" />
            </Border>
        </StackPanel>
    </StackPanel>
</Grid>
...