WPF:如何编辑位于UserControl内的DockPanel的内容?

时间:2008-11-27 19:49:58

标签: wpf vb.net xaml user-controls

我创建了一个用户控件(在vb.net代码中),其中包含两个停靠面板,一个用于标题内容(称为HeaderDockPanel),另一个用于其他内容(称为RootDockPanel)。 dockPanel是用户控件的依赖属性。

这些依赖项属性声明如下:

Public Shared ReadOnly RootDockPanelProperty As DependencyProperty = DependencyProperty.Register( _
       "RootDockPanel", GetType(DockPanel), GetType(MyUserControl), New PropertyMetadata( _
       Nothing))

Public Shared ReadOnly HeaderDockPanelProperty As DependencyProperty = DependencyProperty.Register( _
            "HeaderDockPanel", GetType(DockPanel), GetType(MyUserControl), New PropertyMetadata( _
            Nothing))

我试图改变这些停靠面板的内容如下,但我没有成功:

<Wpf:EditBaseControl>
    <Wpf:MyUserControl.HeaderDockPanel>
        <DockPanel>
            <Button Content="buttonContent" />
            <TextBlock Text="textBlock" />
        </DockPanel>
    </Wpf:MyUserControl.HeaderDockPanel>
</Wpf:EditBaseControl>


如何编辑UserControl中的DockPanel的内容?

1 个答案:

答案 0 :(得分:1)

1我在这里没有正确地设计你的设计方法。为什么需要Dependancy属性作为DockPanel。如果在XAML中设置x:Name属性并访问该名称为_dockPanel,则可以直接在您的usercontrol代码中引用DockPanel。访问_dockPanel.Children属性来操纵它的孩子,

2关于DP的另一个想法,您可能需要将DockPanel实例添加到Wpf:EditBaseControl作为DependancyPropertyChanged事件上的内容。

3如果您想尝试lookless方式(即WPF Custom control),那么我建议您为此目的创建HeaderedItemsControl并将ItemsPanel设置为该控件的DockPanel。