WPF : "푸시 같은"확인란을 만드는 방법?
-
06-07-2019 - |
문제
버튼처럼 보이는 확인란을 만들고 싶습니다. 나의 초기 연약한 시도는 전혀 효과가 없습니다.
<CheckBox x:Name="test">
Testing!
<CheckBox.Template>
<ControlTemplate>
<Button>
<ContentPresenter/>
</Button>
</ControlTemplate>
</CheckBox.Template>
</CheckBox>
ContentPresEnter가 작동하지 않으며 (버튼이 비어 있음) 버튼을 클릭하면 ischecked 속성이 전환되지 않습니다. 또한, 나는 ischecked가 사실 일 때 버튼을 푸시하는 방법을 모른다.
해결책
a 토글 부트 턴 당신의 필요에 맞습니까? CheckBox는 그것에서 파생되므로 매우 유사합니다.
다른 팁
방금 같은 의견을 쓰기 시작했습니다. :)
<ToggleButton Name="tb" Height="45" Width="45">
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Content" Value="False"/>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content" Value="True"/>
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
이제 원하는대로 확인란 제어 :
<CheckBox>
<CheckBox.Template>
<ControlTemplate TargetType="CheckBox">
<ToggleButton x:Name="toggleButton">
</ToggleButton>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True" SourceName="toggleButton">
<Setter Property="Content" Value="True"/>
</Trigger>
<Trigger Property="Content" Value="True">
<Setter Property="IsChecked" Value="True"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</CheckBox.Template>
</CheckBox>
나는 ToggleButton이 갈 길이라는 데 동의하지만, 당신이 당신의 예에 컨텐츠가 나타나기를 원한다면, contentpresenter 선언을 이것으로 변경해보십시오.
<ContentPresenter Content="{TemplateBinding Content}" />
제휴하지 않습니다 StackOverflow