2009-07-22 6 views
3

Как создать настраиваемый элемент управления, который принимает список UIElement s и отображает их в соответствии с некоторой логикой?Добавление пользовательских элементов управления пользовательским интерфейсом (WPF)

Поскольку он будет обрабатывать список UIElement s, лучший способ добавления элементов управления будет таким же, как для, то есть ListBox или ComboBox.

<local:SomeControl> 
    <Button Content="First"/> 
    <Label Content="Something other"/> 
</local:SomeControl> 

Вот XAML пользовательского элемента управления:

<UserControl x:Class="_2009_07_22_Wpf_Smooth_Scroller.SomeControl" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      MinHeight="100" MinWidth="100"> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition Height="*" /> 
     </Grid.RowDefinitions> 
     <Label Content="Some title"/> 

     <!-- The inner UIElement to add content to --> 
     <Canvas x:Name="innerPanel" Grid.Row="1"/> 

    </Grid> 
</UserControl> 

Как я могу, например, место я-го управления на месте X = 50 * я, Y = 40 * я?

ответ

4

То, что вы описали это WPF Panel:

элементы Используйте панель для позиционирования и организовать дочерние объекты в ОС Windows Presentation Foundation (WPF) приложений.

То есть вы можете подкласса Panel и организовать своих детей в соответствии с вашей логикой.

+0

Удивительно просто. Просто попробовал. Работает. Спасибо! –

0

Если вы хотите добавить элемент управления пользователя в Panel, просто используйте свойство панели Children. Пример:

usercontrolObject = new MyUserControl(); 
panelobj.Children.Add(usercontrolObject); 

Вот оно!