2012-02-15 8 views
2

私はContentPresenterをコードの中でどうやって取得するのですか?

は、今、私が取得する必要がありテーマ\ Generic.xaml下に以下のコード持ってcPresenter私はそれを行うことができる方法の背後にあるコードで

実際、私はSilverlightの実装をWPFコードに変換しようとしています。 Silverlightは持っているよう は、と私は何かを使用したい:

FrameworkElement cp = this.GetTemplateChild("cPresenter") as FrameworkElement; 

テーマGeneric.xaml

<Style TargetType="local:Marquee"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="local:Marquee"> 
        <Border Background="{TemplateBinding Background}" 
          BorderBrush="{TemplateBinding BorderBrush}" 
          BorderThickness="{TemplateBinding BorderThickness}">  
         <ScrollViewer Width="Auto" Height="Auto" HorizontalContentAlignment="Stretch" 
          VerticalContentAlignment="Stretch" VerticalScrollBarVisibility="Disabled"> 
          <Canvas> 
           <ContentPresenter x:Name="cPresenter" VerticalAlignment="Center" HorizontalAlignment="Center"/>        
          </Canvas> 
         </ScrollViewer> 
        </Border> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

答えて

3

\また、WPFで動作してはならない理由はありません。 Marqueeのコードにこれを入れてください。

private ContentPresenter cPresenter; 

public override void OnApplyTemplate() 
{ 
    base.OnApplyTemplate(); 
    this.cPresenter = this.GetTemplateChild("cPresenter") as ContentPresenter; 
} 
+2

はい、OnApplyTemplateはFrameworkElementのメンバーです。 –

+1

あなたに特別な感謝スティーブ!あなたは私をたくさん助けてくれました!私はあなたにビールを借りている、兄さん! –

関連する問題