none
[Silverlight Tips] 임의의 컨트롤 생성 RRS feed

  • 일반 토론

  •  

    질문

     

    Silverlight에서 Control을 상속 받아서 임의의 Control을 생성할 수 있습니다.이런 경우 XAML Template C#에서 적용할 수 있습니다.

     

    답변

     

    Step 1 : Control 클래스 상속

    Class를 생성 후 Control 클래스를 상속 받습니다.

    MyControl.cs

    public class MyControl : Control

     

    Step 2 : XAML String 생성

    MyControl.cs

    //XAML Tag String
    private const string _contentTemplate = "<ControlTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"" +
        "                  xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\">" +
        "<Image x:Name=\"MyImage\" Source=\"Lighthouse.jpg\"></Image>" +
        "</ControlTemplate>";

     

    Step 3 : Control 생성 시 템플릿 적용

    MyControl.cs

    public MyControl()
    {
        //String Template 클래스로 변환
        Template = (ControlTemplate)XamlReader.Load(_contentTemplate);
        ApplyTemplate();
    }

     

    Step 4 : MyControl 사용

    MainPage.XAML

    xmlns:local="clr-namespace:ApplyXAMLTemplate"

     

    <Grid x:Name="LayoutRoot" Background="White">
        <Canvas x:Name="MyCanvas">
            <local:MyControl />
        </Canvas>
    </Grid>

     

     

    Project Explorer

     

    2011년 9월 6일 화요일 오전 7:31
    중재자