如何创建一个自定义控件,该控件采用UIElement
列表并根据某些逻辑呈现它们?
因为它会处理UIElement
的列表,所以添加控件的最佳方式与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>
例如,我如何将第i个控件放置到位置X = 50 * i,Y = 40 * i?
答案 0 :(得分:4)
您所描述的是WPF Panel
:
使用面板元素定位和 在Windows中安排子对象 演示基金会(WPF) 应用
也就是说,您可以继承Panel
并根据您的自定义逻辑安排您的孩子。
答案 1 :(得分:0)
如果要将用户控件添加到Panel
,只需使用面板的Children
属性即可。
样品:
usercontrolObject = new MyUserControl();
panelobj.Children.Add(usercontrolObject);
就是这样!