将UIElements添加到自定义控件(WPF)

时间:2009-07-22 09:16:20

标签: wpf wpf-controls uielement

如何创建一个自定义控件,该控件采用UIElement列表并根据某些逻辑呈现它们?

因为它会处理UIElement的列表,所以添加控件的最佳方式与ListBoxComboBox相同。

<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>

例如,我如何将第i个控件放置到位置X = 50 * i,Y = 40 * i?

2 个答案:

答案 0 :(得分:4)

您所描述的是WPF Panel

  

使用面板元素定位和   在Windows中安排子对象   演示基金会(WPF)   应用

也就是说,您可以继承Panel并根据您的自定义逻辑安排您的孩子。

答案 1 :(得分:0)

如果要将用户控件添加到Panel,只需使用面板的Children属性即可。 样品:

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

就是这样!