Контейнер для нескольких элементов управления в xaml - PullRequest
0 голосов
/ 29 ноября 2011

Я пытаюсь создать пользовательский элемент управления для приложения silverlight, который в основном позволяет пользователю щелкать и перетаскивать холст и рисовать линию с небольшим прямоугольником на каждом конце. Как я могу заключить эти три элемента управления в один пользовательский элемент управления. Я хочу сделать что-то вроде этого ...

<UserControl x:Class="Linecontrol"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <SomeAbstractGroupingContainer>
         <Line Name="ctlLine" /> 
         <Rectangle Name="rec1" />
         <Rectangle Name="rec2" />
    </SomeAbstractGroupingContainer>     
</UserControl>

Есть идеи, что можно использовать для SomeAbstractGroupingContainer?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2011

Хотя я не уверен, что это правильный подход для приложения для рисования (Замечено, что jlew's Anwser ?), Я просто отвечу на ваш вопрос и надеюсь, что вы найдете свое решение.

ItemsControl - это базовый элемент управления, который может сделать это:

<ItemsControl>
    <ItemsControl.Items>
        <Line Name="ctlLine" /> 
        <Rectangle Name="rec1" />
        <Rectangle Name="rec2" />
    </ItemsControl.Items>
</ItemsControl>

Это должно работать ... так что вы можете получить из ItemsControl:

public class SomeAbstractGroupingContainer : ItemsControl
{
    public SomeAbstractGroupingContainer()
    {
        this.DefaultStyleKey = typeof(SomeAbstractGroupingContainer);
    }
}

И вы можете расширить его, как пожелаете.

Итак, в конце концов вы получите что-то вроде этого:

<myControls:SomeAbstractGroupingContainer>
    <myControls:SomeAbstractGroupingContainer.Items>
        <Line Name="ctlLine" /> 
        <Rectangle Name="rec1" />
        <Rectangle Name="rec2" />
    </myControls:SomeAbstractGroupingContainer.Items>
</myControls:SomeAbstractGroupingContainer>

Вы можете изменить способ расположения элементов, изменив ControlTemplate.

Это было вдохновлено ItemsControl с нуля до вашей собственной статьи , это может быть полезно.

0 голосов
/ 29 ноября 2011

Как насчет Холст ?

...