我创建了一个用户控件(在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的内容?
答案 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。