1

私はWPFを初めて使用し、助けが必要な問題に直面しています。

私の環境は.net4、VS2010、win7です

ユーザーコントロールから使用するスタイル付きのトグルボタンを定義したいと思います。UserControlでToggleButtonコントロールを宣言するとき、ボタンの状態に応じて2つの可能なコンテンツを提供したいと思います。

私の質問:2つの内容(1つはIsChecked = trueの場合、もう1つはIsChecked = falseの場合)でボタンを宣言する方法がわかりません。コンパイルしないコードをいくつか含めました。

前もって感謝します

..。

4

3 に答える 3

1

次のようなものを使用できるはずです。

      <ToggleButton>
        <ToggleButton.Style>
            <Style TargetType="{x:Type ToggleButton}">
                <Setter Property="Content">
                    <Setter.Value>
                        <Grid>
                            <TextBlock>Click Me</TextBlock>
                        </Grid>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <Trigger Property="IsChecked" Value="True">
                        <Setter Property="Content">
                            <Setter.Value>
                                <Grid>
                                    <TextBlock>Click Me Again</TextBlock>
                                </Grid>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </ToggleButton.Style>
    </ToggleButton>
于 2011-01-14T08:30:57.347 に答える
1

2つのコンテンツに応じて、次のようなことができます。

<ToggleButton IsChecked="True">
    <ToggleButton.Style>
        <Style TargetType="{x:Type ToggleButton}">
            <Style.Triggers>
                <Trigger Property="IsChecked" Value="True">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate>
                                <Button></Button>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Trigger>
                <Trigger Property="IsChecked" Value="False">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate>
                                <Border Background="Red" />
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </ToggleButton.Style>
</ToggleButton>

この例では、ToggleButtonには、チェックされている場合は1つのコンテンツ(ボタン)があり、チェックされていない場合は他のコンテンツ(赤い背景の境界線)があります。IsChecked状態を個別に切り替えるアクションを処理する必要があります。

また、ToggleButtonがUserControl内の唯一のコントロールである場合、UserControlを使用する必要はなく、ToggleButtonのスタイルを変更するだけです。ユーザーコントロールは、特定の機能(検索テキストボックスと検索コントロールとして一緒に使用される[移動]ボタンなど)を持つようにコントロールをグループ化する場合に適しています。

于 2011-01-14T08:32:20.797 に答える
0

ControlTemplateを設定することにより、ToggleButtonのスタイルを設定できます

WPFControlTemplateトリガーのヒントを確認してください。これはあなたを助けます

于 2011-01-14T08:24:57.580 に答える