0

全体の状況は次のようになります。

StackPanel のビューにはいくつかのボタンがあります。それらの最初のものはデフォルトで選択されるべきです。ボタンが選択されている場合、その背景は緑色である必要があり、他の (選択されていない) ボタンの背景は青色である必要があります。

ViewModel にいくつかのロジックを実装せずに、このような動作を実装することは可能ですか?

更新 1. トグルボタンではなくボタンについて話します

4

2 に答える 2

0

はい、Styleユーザーがクリックしたときに変更するプロパティの設定を使用できます。

詳細については、こちらこちらをご覧ください

于 2013-11-06T11:33:09.453 に答える
0

Aを選択するButtonことも、いわゆる「選択」することもできません。IsSelectedプロパティはありません。その動作が必要な場合は、通常のように見えるa ToggleButton、または d である aRadioButtonを使用する必要があります。StyleButton

Styleこれをあなたのセクションに追加してくださいResources

<Style TargetType="{x:Type RadioButton}">
    <Setter Property="Foreground" Value="White" />
    <Setter Property="HorizontalAlignment" Value="Left" />
    <Setter Property="VerticalAlignment" Value="Top" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type RadioButton}">
                <Border CornerRadius="3.5" Background="White" BorderBrush="Black" BorderThickness="1" Padding="1">
                    <Border Name="Border" CornerRadius="3" Background="Blue" Padding="10,0,10,2">
                        <ContentPresenter />
                    </Border>
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsChecked" Value="True">
                        <Setter TargetName="Border" Property="Background" Value="Red" />
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Style.Triggers>
        <Trigger Property="IsChecked" Value="True">
            <Setter Property="Background" Value="Red" />
        </Trigger>
    </Style.Triggers>
</Style>

次にRadioButton、 のように見えButton、要件を満たすを使用できます。

<StackPanel Orientation="Horizontal">
    <RadioButton Content="One" />
    <RadioButton Content="Two" />
    <RadioButton Content="Three" />
    <RadioButton Content="Four" />
</StackPanel>
于 2013-11-06T12:19:20.757 に答える