C# 内容演示者问题
我有一个ContentControl,上面有一个网格。第1列将是一个树状视图,第2列是一个拆分器,我已经将第3列设置为ContentPresenter。定义如下:C# 内容演示者问题,c#,wpf,C#,Wpf,我有一个ContentControl,上面有一个网格。第1列将是一个树状视图,第2列是一个拆分器,我已经将第3列设置为ContentPresenter。定义如下: <ContentPresenter Grid.Column="2" Name="PlaceHolder" /> 然后,如果我将ContentControl添加到页面并将一个项目添加到ContentControl,它不仅会出现在第2列中,而是会跨越ContentControl的整个宽度。以下是我向ContentPres
<ContentPresenter Grid.Column="2" Name="PlaceHolder" />
然后,如果我将ContentControl添加到页面并将一个项目添加到ContentControl,它不仅会出现在第2列中,而是会跨越ContentControl的整个宽度。以下是我向ContentPresenter添加内容的方式:
<MyNamespace:MyControlName>
<Button>Hello world!</Button>
</MyNamespace:MyControlName>
你好,世界!
如何使按钮仅显示在第2列中,并使第0列中的树视图正常显示
提前感谢。您正在将
ContentControl
中的ContentControl.Content
属性设置为网格
,然后在使用该控件时覆盖ContentControl.Content
以将其设置为按钮
您需要将网格
设置为ContentControl.ContentTemplate
而不是实际的内容
,并修改ContentPresenter
以显示内容
属性
<ContentControl ...>
<ContentControl.Template>
<ControlTemplate TargetType="{x:Type ContentControl}">
<Grid>
...
<ContentPresenter Grid.Column="2" Name="PlaceHolder"
Content="{TemplateBinding Content}" />
...
</Grid>
</ControlTemplate>
</ContentControl.Template>
</ContentControl>
...
...
发布ContentControl的完整XAML。尽管如此,按钮仍会扩展以填充整个页面宽度ContentControl@RobertLancaster请看我根据您发布的XAML修改的答案。。。现在我的ContentControl中根本没有显示任何内容。@RobertLancaster您是否包含了ContentPresenter.Content
绑定?您需要告诉它,要托管随{TemplateBinding content}
提供的内容,上面的代码是放在元素内部还是包装它?