我有一个ContentControl,我有一个网格。第1列是TreeView,第2列是拆分器,我已将第3列设置为ContentPresenter。定义如下:
<ContentPresenter Grid.Column="2" Name="PlaceHolder" />
如果我然后将ContentControl添加到页面并将项目添加到ContentControl,它不仅会出现在第2列中,而是跨越ContentControl的整个宽度。这是我向ContentPresenter添加内容的方式:
<MyNamespace:MyControlName>
<Button>Hello world!</Button>
</MyNamespace:MyControlName>
如何让按钮仅显示在第2列并使第0列中的TreeView显示为正常?
提前致谢。
答案 0 :(得分:1)
您要将ContentControl.Content
中的ContentControl
属性设置为Grid
,然后当您使用控件覆盖ContentControl.Content
时将其设置为Button
而不是
您需要将Grid
设置为ContentControl.ContentTemplate
而不是实际Content
,并修改ContentPresenter
显示Content
属性
<ContentControl ...>
<ContentControl.Template>
<ControlTemplate TargetType="{x:Type ContentControl}">
<Grid>
...
<ContentPresenter Grid.Column="2" Name="PlaceHolder"
Content="{TemplateBinding Content}" />
...
</Grid>
</ControlTemplate>
</ContentControl.Template>
</ContentControl>