2010-01-02 6 views

답변

9

기본적으로 컨트롤의로드 된 이벤트에 연결해야합니다. 이 시점에서 Template 속성에 할당 할 수 있습니다. 리소스 사전에서 템플릿을 검색 할 수 있습니다.

예를 들어, UserControl의 코드에 다른 템플릿을 제공하고 해당 템플릿이 UserControls Resources 속성에 저장되는 TextBox가 포함 된 UserControl이 있다고 가정합니다. 해당 UserControl의 코드 숨김에서

<UserControl xmlns="Namespaces removed for clarity" > 
    <UserControl.Resources> 
    <ControlTemplate TargetType="TextBox" x:Key="MyTextBox"> 
     <!-- template mark up here --> 
    </ControlTemplate> 
    <UserControl.Resources> 
    <TextBox x:Name="txt" Loaded="txt_loaded" /> 
</UserControl> 

이 코드 것 : - 내가 텍스트 상자의 자신의로드 이벤트를 사용하고 있는데이 경우

void txt_Loaded(object sender, RoutedEventArgs e) 
{ 
    ((TextBox)sender).Template = (ControlTemplate)Resources["MyTextBox"]; 
} 

을, 그러나, 당신은 또한 사용할 수 있습니다 UserControls 이벤트를로드했습니다.

void Page_Loaded(object sender, RoutedEventArgs e) 
{ 
    txt.Template = (ControlTemplate)Resources["MyTextBox"]; 
} 
관련 문제