0

グリッドがある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を通常どおりに表示するにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

1

ContentControl.Contentのプロパティをに設定しているContentControlのでGrid、コントロールを使用すると、代わりにプロパティを上書きContentControl.Contentして設定します。Button

を実際Gridの代わりに設定し、ショーのプロパティを変更する必要がありますContentControl.ContentTemplateContentContentPresenterContent

<ContentControl ...>
    <ContentControl.Template>
        <ControlTemplate TargetType="{x:Type ContentControl}">
            <Grid>
                ...
                <ContentPresenter Grid.Column="2" Name="PlaceHolder" 
                                  Content="{TemplateBinding Content}" />
                ...
            </Grid>
        </ControlTemplate>
    </ContentControl.Template>
</ContentControl>
于 2012-11-05T15:19:33.467 に答える