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

728x90
반응형

■ ControlTemplate 엘리먼트 : TargetType 속성을 사용해 Button 엘리먼트 정의하기

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


TestProject.zip


MainWindow.xaml

 

 

<Window x:Class="TestProject.MainWindow"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Width="800"

    Height="600"

    Title="ControlTemplate 엘리먼트 : TargetType 속성을 사용해 Button 엘리먼트 정의하기"

    FontFamily="나눔고딕코딩"

    FontSize="16">

    <Grid>

        <Button

            HorizontalAlignment="Center"

            VerticalAlignment="Center"

            Padding="20"

            FontSize="48">

            Button with Custom Template

            <Button.Template>

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

                    <Border Name="border"

                        BorderThickness="3"

                        BorderBrush="Red"

                        Background="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}">

                        <TextBlock Name="textBlock"

                            Margin="{TemplateBinding Padding}"

                            FontStyle="Italic"

                            Text="{TemplateBinding Content}" />

                    </Border>

                    <ControlTemplate.Triggers>

                        <Trigger Property="IsMouseOver" Value="True">

                            <Setter TargetName="border"    Property="CornerRadius" Value="24"   />

                            <Setter TargetName="textBlock" Property="FontWeight"   Value="Bold" />

                        </Trigger>

                        <Trigger Property="IsPressed" Value="True">

                            <Setter TargetName="border" Property="Background"

                                Value="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}" />

                        </Trigger>

                    </ControlTemplate.Triggers>

                </ControlTemplate>

            </Button.Template>

        </Button>

    </Grid>

</Window>

 

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

※ ControlTemplate 엘리먼트에서 TargetType 속성을 사용하면 TemplateBinding 표현에서 의존 프로퍼티의 클래스 이름을 앞에 붙일 필요가 없다.

728x90
반응형
Posted by 사용자 icodebroker

댓글을 달아 주세요