ControlTemplate 은 컨트롤의 모습이나 이벤트 처리등을 미리 정의해 놓고 가져다 쓰는 것을 말합니다.
아래 예시를 보시면 아시겠지만 RadioButton 앞의 라디오 박스가 사라지고
선택시 글자를 굵게 표시하고 주변으로 사각형이 그려집니다.
<Window x:Class="WpfApp.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <StackPanel> <StackPanel.Resources> <ControlTemplate x:Key="rectRadioButton" TargetType="{x:Type RadioButton}"> <Border Name="border" BorderBrush="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" CornerRadius="0" Padding="10" BorderThickness="0" Margin="2" Width="250"> <ContentPresenter Content="{TemplateBinding ContentControl.Content}" HorizontalAlignment="Center"/> </Border> <ControlTemplate.Triggers> <Trigger Property="IsChecked" Value="True"> <Setter TargetName="border" Property="BorderThickness" Value="3" /> <Setter Property="FontWeight" Value="Bold" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </StackPanel.Resources> <GroupBox HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="12pt" Header="Select Option"> <StackPanel> <RadioButton Template="{StaticResource rectRadioButton}" HorizontalAlignment="Center" Content="Template RadioButton 1" IsChecked="True" /> <RadioButton Template="{StaticResource rectRadioButton}" HorizontalAlignment="Center" Content="Template RadioButton 2" /> <RadioButton Template="{StaticResource rectRadioButton}" HorizontalAlignment="Center" Content="Template RadioButton 3" /> <RadioButton Template="{StaticResource rectRadioButton}" HorizontalAlignment="Center" Content="Template RadioButton 4" /> </StackPanel> </GroupBox> </StackPanel> </Window>
|
'C# > WPF' 카테고리의 다른 글
[WPF] CollectionView 를 이용해 데이터 정렬하기 (0) | 2020.07.12 |
---|---|
[WPF] Control 의 ControlTemplate 구조 나타내는 프로그램 (0) | 2020.07.11 |
[WPF] Style.Triggers 이용하여 Control 변화 주기 (0) | 2020.07.10 |
[WPF] Style 사용하기 (0) | 2020.07.10 |
[WPF] RelativeSource 를 이용한 바인딩 (0) | 2020.07.10 |