Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 内容演示者问题_C#_Wpf - Fatal编程技术网

C# 内容演示者问题

C# 内容演示者问题,c#,wpf,C#,Wpf,我有一个ContentControl,上面有一个网格。第1列将是一个树状视图,第2列是一个拆分器,我已经将第3列设置为ContentPresenter。定义如下: <ContentPresenter Grid.Column="2" Name="PlaceHolder" /> 然后,如果我将ContentControl添加到页面并将一个项目添加到ContentControl,它不仅会出现在第2列中,而是会跨越ContentControl的整个宽度。以下是我向ContentPres

我有一个ContentControl,上面有一个网格。第1列将是一个树状视图,第2列是一个拆分器,我已经将第3列设置为ContentPresenter。定义如下:

<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}
提供的内容,上面的代码是放在元素内部还是包装它?