2012-02-15 3 views
2

나는코드 뒤에 ContentPresenter를 가져 오는 방법은 무엇입니까?

지금 내가 얻을 필요가 테마 \ generic.xaml을 아래에 아래의 코드가 cPresenter 내가 할 수있는 방법을 뒤에 코드?

사실 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

스티브 감사합니다! 너는 방금 나를 많이 도와 줬어! 너 한테 맥주 빚 졌어, 형! –

관련 문제