문제

버튼처럼 보이는 확인란을 만들고 싶습니다. 나의 초기 연약한 시도는 전혀 효과가 없습니다.

<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}" />
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top