【发布时间】:2013-05-02 23:12:10
【问题描述】:
其实我有两个问题:
如何修改从仅包含一个子项(例如 Page 或 ContentControl)的 FrameworkElement 继承的自定义控件,以便它包含多个子项(例如 Panel)?这可以从类定义中完成吗?
如何将自定义控件的子级绑定到自定义控件模板中定义的 Panel 对象(例如 WrapPanel)?
我什至不确定这是否可能,但我想创建一个行为类似于 Page 的自定义控件,或者甚至可以从 Page 继承,但允许我在 XAML 中输入子项。例如,我希望用于生成自定义控件的 XAML 如下所示:
<CustomPage CustomAttribute="blah">
<TextBox/>
<TextBlock Text="hehe"/>
<Label Content="ha!"/>
</CustomPage>
我想定义 WrapPanel 显示子项的样式。像这样的:
<Style TargetType="{x:Type CustomPage}">
<Style.Setters>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type CustomPage}">
<WrapPanel/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style.Setters>
</Style>
我会用 ContentPresenter 替换 WrapPanel,但我希望 ContentPresenter 的行为类似于 WrapPanel。
我希望这足够具体。
【问题讨论】:
标签: wpf wpf-controls custom-controls wrappanel