2009-10-19 75 views
6

到目前爲止,我有這樣的:該用戶控件的有沒有人有一個單一的ContentPresenter UserControl的簡單例子?

<UserControl 
    x:Class="MyConcept.ExpanderPanel" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Grid> 
     <Border 
      Style="{StaticResource Border_PanelStyle}" 
      CornerRadius="3" /> 
     <ContentPresenter /> 
    </Grid> 
</UserControl> 

使用範例:

<nc:ExpanderPanel 
    Grid.Row="0"> 
    <Expander 
     IsExpanded="True" 
     Header="NMT Users"> 
     <StackPanel> 
      ... 
     </StackPanel> 
    </Expander> 
</nc:ExpanderPanel> 

討論

如果我運行這個,我什麼也看不見。沒有呈現內容,甚至沒有內置到UserControl中的邊框。

我想也許我需要使ContentPresenter依賴項屬性,但我無法弄清楚如何將該屬性鏈接到UserControl的XAML中的ContentPresenter。

有人可以提供一個簡單的例子,說明如何建立UserControl(或某種自定義控件)與一個ContentPresenter

+0

這看起來像它會做的伎倆:http://blog.pixelingene.com/?p=24 – devuxer 2009-10-19 02:01:49

回答

4

ContentPresenters主要在ControlTemplates中使用,並通過TemplateBinding綁定到ContentControl.Content。 從這個site ...對於使用ContentPresenter一個按鈕控件模板

<Style TargetType="{x:Type Button}"> 
    <Setter Property="Background" Value="White" /> 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate> 
     <Grid> 
      <Rectangle Fill="{TemplateBinding Property=Background}" /> 
      <ContentPresenter 
       Content="{TemplateBinding Property=ContentControl.Content}" /> 
     </Grid> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 
+0

它顯示了現在,但我不確定這與我的問題有何關係。我試圖構建一個包含'ContentPresenter'的自定義控件或用戶控件,而不是爲一個按鈕設置C​​ontrolTemplate。 – devuxer 2009-10-19 01:55:53

+0

您必須爲控件使用ControlTemplate,這是一個如何操作的示例。基本上,你必須告訴ContentControl如何顯示你想要顯示的內容。它爲一些內置的東西提供了一組「默認」模板。 http://social.msdn.microsoft.com/forums/en-US/wpf/thread/a2988ae8-e7b8-4a62-a34f-b851aaf13886#contentpresenter – 2009-10-19 14:27:32

+0

@ Muad'Dib ...你的形象應該是一個鼠標 – macon 2013-04-16 09:15:56

相關問題