9

ボタンのように見える CheckBox を作成したいと思います。私の最初の弱い試みはまったくうまくいきません。

<CheckBox x:Name="test">
    Testing!
    <CheckBox.Template>
        <ControlTemplate>
            <Button>
                <ContentPresenter/>
            </Button>
        </ControlTemplate>
    </CheckBox.Template>
</CheckBox>

ContentPresenter が機能しておらず (ボタンが空)、ボタンをクリックしても IsChecked プロパティがトグルしません。また、IsChecked が true のときにボタンが押されたように見せる方法がわかりません。

4

3 に答える 3

13

ToggleButtonはあなたのニーズに合っていますか? CheckBox はそこから派生しているため、非常によく似ています。

于 2009-06-18T16:45:27.010 に答える
7

私はちょうど同じコメントを書き始めたところです:)

<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>
于 2009-06-18T16:49:20.253 に答える
2

ToggleButton が最適な方法であることに同意しますが、コンテンツを例に表示したい場合は、ContentPresenter 宣言を次のように変更してみてください。

<ContentPresenter Content="{TemplateBinding Content}" />
于 2009-06-18T17:07:23.277 に答える