LoginSignup
0
0

More than 3 years have passed since last update.

WPF覚え書き~ControlTemplate~

Posted at

はじめに

WPF学習中のため自分用に記載していきます。
間違い、不足などありましたらコメントをよろしくお願いします。

ControlTemplateプロパティ

ControlTemplateプロパティを設定することで、外見をすべてカスタマイズすることが可能になる。


例:Buttonコントロールをカスタマイズ

ButtonコントロールをControlTemplate(コントロールテンプレート)を利用してボタンを丸くしたものを作成する。

~省略~
<Button Content="Button" Margin="30" Background="LightSeaGreen">
    <Button.Template>
        <ControlTemplate TargetType="Button">
            <Border Name="border"
                BorderThickness="1"
                BorderBrush="OrangeRed"
                Background="{TemplateBinding Background}"
                CornerRadius="1000">
                <ContentPresenter VerticalAlignment="Center"
                                HorizontalAlignment="Center" />
            </Border>
        </ControlTemplate>
    </Button.Template>
</Button>

★「Background="{TemplateBinding Background}"」
 親コントロールのプロパティをバインドすることが可能


例:トリガーを追加する

テンプレートが適用されたコントロールにトリガーを追加することも可能

~省略~
<Button Content="Button" Margin="30" Background="LightSeaGreen" >
    <Button.Template>
        <ControlTemplate TargetType="Button">
            <Border Name="border"
                    BorderThickness="10"
                    BorderBrush="OrangeRed"
                    Background="{TemplateBinding Background}"
                    CornerRadius="1000">
                    <ContentPresenter VerticalAlignment="Center"
                        HorizontalAlignment="Center" />
            </Border>

            <!--  マウスオーバー時に背景色を変更する  -->
            <ControlTemplate.Triggers>
                <Trigger Property="IsMouseOver" Value="true">
                    <Setter TargetName="border"
                    Property="Background"
                    Value="Yellow">
                    </Setter>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </Button.Template>
</Button>

参照

コントロールのためのテンプレートを作成する方法 (WPF.NET)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0