728x90
반응형
728x170
■ ControlTemplate 엘리먼트를 사용해 CheckBox 엘리먼트를 정의하는 방법을 보여준다.
▶ 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 엘리먼트 : CheckBox 엘리먼트 정의하기"
FontFamily="나눔고딕코딩"
FontSize="16">
<Window.Resources>
<ControlTemplate x:Key="CheckBoxTemplateKey" TargetType="{x:Type CheckBox}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Border
Width="100"
Height="70"
BorderBrush="Black"
BorderThickness="1">
<Canvas Background="LightGray">
<TextBlock
Canvas.Left="0"
Canvas.Top="0"
Margin="2"
Foreground="Black"
Text="OFF" />
<TextBlock
Canvas.Right="0"
Canvas.Top="0"
Margin="2"
Foreground="Black"
Text="ON" />
<Line Name="offLine"
Stroke="Black"
StrokeThickness="8"
StrokeStartLineCap="Round"
StrokeEndLineCap="Round"
X1="50"
Y1="60"
X2="25"
Y2="30" />
<Line Name="onLine"
Stroke="Black"
StrokeThickness="8"
StrokeStartLineCap="Round"
StrokeEndLineCap="Round"
X1="50"
Y1="60"
X2="75"
Y2="30"
Visibility="Hidden" />
</Canvas>
</Border>
<ContentPresenter Grid.Row="1"
HorizontalAlignment="Center"
Margin="5"
Content="{TemplateBinding Content}" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="offLine" Property="Visibility" Value="Hidden" />
<Setter TargetName="onLine" Property="Visibility" Value="Visible" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Window.Resources>
<CheckBox
Template="{StaticResource CheckBoxTemplateKey}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Content="마스터 스위치" />
</Window>
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] xml:space 속성 : XAML에서 문자열 공백 유지하기 (0) | 2020.08.27 |
---|---|
[C#/WPF] XmlDataProvider 엘리먼트 : x:XData 엘리먼트를 사용해 XML 데이터 내장하기 (0) | 2020.08.26 |
[C#/WPF] ItemsPanelTemplate 엘리먼트 : ListBox 엘리먼트의 ItemPanel 속성에 커스텀 패널 설정하기 (0) | 2020.08.26 |
[C#/WPF] DataTemplate 엘리먼트 : ListBox 엘리먼트의 ItemTemplate 속성 설정하기 (0) | 2020.08.26 |
[C#/WPF] DataTemplate 엘리먼트 : Button 엘리먼트의 ContentTemplate 속성 설정하기 (0) | 2020.08.26 |
[C#/WPF] ControlTemplate 엘리먼트 : RadioButton 엘리먼트 정의하기 (0) | 2020.08.26 |
[C#/WPF] 지오메트리 사용하기 (0) | 2020.08.26 |
[C#/WPF] ControlTemplate 엘리먼트 : RadioButton 엘리먼트 정의하기 (0) | 2020.08.25 |
[C#/WPF] LinearGradientBrush 엘리먼트 : 글래스 효과 브러시 만들기 (0) | 2020.08.25 |
[C#/WPF] DrawingBrush 엘리먼트 : GeometryDrawing 객체를 사용해 격자 배경 브러시 만들기 (0) | 2020.08.25 |
댓글을 달아 주세요