我想创建一个UserControl(比如ItemsControl),里面可能包含多个元素。
我想像这样使用这个UserControl:
<local:MyUserControl Margin="10,34,10,10" Background="#FF202020">
<local:OtherUserControl Background="#FF202020" SelectedBackground="#FF303030" />
<local:OtherUserControl Background="#FF202020" SelectedBackground="#FF303030" />
<local:OtherUserControl Background="#FF202020" SelectedBackground="#FF303030" />
<local:OtherUserControl Background="#FF202020" SelectedBackground="#FF303030" />
<local:OtherUserControl Background="#FF202020" SelectedBackground="#FF303030" />
</local:MyUserControl>
我应该在XAML写什么才能让它像我需要的那样工作?你能给我一些代码的例子吗?
答案 0 :(得分:1)
UserControls(在WPF中)将呈现单个子项,但该子项(取决于您使用的控件类型)可以具有子项。例如,如果您将StackPanel添加到用户控件,则StackPanel可能有多个子项。
WPF中的所有控件都将呈现单个子项,除非该控件是一个布局控件,如Grid
,StackPanel
,Canvas
,DockPanel
等...
这是另一个使用StackPanel
的例子:
<UserControl x:Class="Drawing.Views.BidForm"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
>
<StackPanel>
<Label FontWeight="Bold" HorizontalContentAlignment="Center" > Item1</Label>
<Label FontWeight="Bold" HorizontalContentAlignment="Center" >Item2</Label>
</StackPanel>
</UserControl>
答案 1 :(得分:0)
您需要从ItemsControl派生您的控件。 UserControl仅提供单个Content元素。
或者,您的UserControl可以公开可以将其他控件绑定到其内容的布局元素。