を与えられて、私はこのToggleButton
を持っている:EventTriggerが焦点
<ToggleButton x:Name="buttonStudentPicker" Content="Student Picker" HorizontalAlignment="Right" Margin="2,10,2,10" BorderThickness="0,5,0,0" Background="{x:Null}">
<ToggleButton.LayoutTransform>
<RotateTransform Angle="90"/>
</ToggleButton.LayoutTransform>
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=buttonBibleReadingMain, Path=IsFocused, Mode=OneWay}" Value="True">
<Setter Property="IsChecked" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
私は2つの関連する問題があります。まず、私は実際にこのボタンをトグルさせるいくつかの要素をインターフェイス上に持っています。現時点では、私はすべての要素を同時に集中させることができないので、1つの要素に基づいてこれを行う方法を試すことしかできません。基本的に:
If button a or button b or button c has just been clicked
Toggle student picker button to true
関連の問題は、私はそれが一つの制御のために働いて、トグル火災持ちながら、私が入れた瞬間にトグルがオフに別のコントロールに焦点を当てる、ということです。私はそれを本当に望んでいない。理想的には、ボタンがフォーカスを獲得したときにトグルが既にオフになっていた場合は、はい、トグルをもう一度オフにする必要があります。しかし、それはすでに見えていた、それはトグルオフするべきではありません。
理想的にはMultiDataTrigger
を使用しますが、すべての条件が真でなければならないことがわかったので、理想的です。
<ToggleButton x:Name="buttonStudentPicker" Content="Student Picker" HorizontalAlignment="Right" Margin="2,10,2,10" BorderThickness="0,5,0,0" Background="{x:Null}">
<ToggleButton.LayoutTransform>
<RotateTransform Angle="90"/>
</ToggleButton.LayoutTransform>
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=buttonBibleReadingMain, Path=IsPressed, Mode=OneWay}" Value="True">
<Setter Property="IsChecked" Value="True"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=buttonBibleReadingClass1, Path=IsPressed, Mode=OneWay}" Value="True">
<Setter Property="IsChecked" Value="True"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=buttonBibleReadingClass2, Path=IsPressed, Mode=OneWay}" Value="True">
<Setter Property="IsChecked" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
私はそれが動作し、それがないが、それが使用する権利財産でないかどうかを確認するためにIsPressed
をしようと考えた:hereから私はDataTriggersのセットを行うことを決めました。
私は正しいことができません。ボタンをクリックすると、トグルが真になるようトリガーされます。しかし何もしないでください。
泥が澄んでいますか?
更新:ボタンにクリックハンドラーを追加した場合。例:
<Button Name="buttonBibleReadingMain" Grid.Column="1" Background="Transparent" Click="buttonBibleReadingMain_Click">
<Image Source="Images/AssignmentTypeBibleReading.png" Margin="2"/>
</Button>
そして、これを入れて、コードビハインドである:
private void buttonBibleReadingMain_Click(object sender, RoutedEventArgs e)
{
buttonStudentPicker.IsChecked = true;
}
それはとしては、欲しいものを行います。ボタンをクリックすると、パネルが表示されます。そして、パネルは私が望む限り、目に見えています。しかし、パネルを強制的に表示させたいそれぞれのコントロールに対して、これを行う必要があります。
ボタンをクリックしてトグルボタンが既にチェックされている場合はどうなりますか?チェックを外すか、何もしないでください。 – Jose
@キレネンコこの時点で、私はトグルをtrueに設定してパネルをオンに切り替えるトリガーと感じています。それを元に戻すのはユーザー次第です。 –
さて、私はあなたがコードの背後にあるべきだと思います。 3つのボタンに同じクリックイベントを使用できます。 – Jose