첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ Binding 태그 확장 : RelativeSource 속성 사용하기

----------------------------------------------------------------------------------------------------

TextBlock 자신이 바인딩 소스인 경우

 

 

<TextBlock Text="{Binding RelativeSource={RelativeSource self}, Path=FontFamily}" />

 

 

TextBlock 기준 1단계 위의 StackPanel이 바인딩 소스인 경우

 

 

<StackPanel TextBlock.FontSize="12" >

    <StackPanel

        HorizontalAlignment="Center"

        Orientation="Horizontal">

        <TextBlock Text="This TextBlock is inside a StackPanel with " />

        <TextBlock Text= "{Binding RelativeSource={RelativeSource AncestorType={x:Type StackPanel}}, Path=Orientation}" />

        <TextBlock Text=" orientation" />

    </StackPanel>

</StackPanel>

 

 

TextBlock 기준 2단계 위의 StackPanel이 바인딩 소스인 경우

 

 

<StackPanel TextBlock.FontSize="12" >

    <StackPanel

        HorizontalAlignment="Center"

        Orientation="Horizontal">

        <TextBlock Text="The parent StackPanel has " />

        <TextBlock Text= "{Binding RelativeSource={RelativeSource AncestorType={x:Type StackPanel}, AncestorLevel=2}, Path=Orientation}" />

        <TextBlock Text=" orientation" />

    </StackPanel>

</StackPanel>

 

 

ControlTemplate 정의 엘리먼트가 바인딩 소스인 경우

 

 

<ControlTemplate TargetType="{x:Type Button}">

    <Border

        x:Name="_pBorder"  

        BorderThickness="2"

        BorderBrush="Black"

        CornerRadius="20">

        <Border.Background>

            <LinearGradientBrush

                StartPoint="0 0.5"

                EndPoint="1 0.5">

                <GradientStop Offset="0.0" Color="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Background.Color}" />

                <GradientStop Offset="0.9" Color="White" />

            </LinearGradientBrush>

        </Border.Background>

        <ContentPresenter

            Margin="2"

            HorizontalAlignment="Center"

            VerticalAlignment="Center"

            RecognizesAccessKey="True" />

    </Border>

</ControlTemplate>

 

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요