我有這個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>
我有兩個相關的問題。首先,我在界面上實際上有幾個元素,我希望這個按鈕可以打開。目前,我只能根據一個元素來研究如何做到這一點,因爲我不能同時關注所有元素。本質:
If button a or button b or button c has just been clicked
Toggle student picker button to true
的相關的問題是,雖然我有工作的一個控件,並且切換大火,我把重點放在另一個控制的瞬間切換關閉。我真的不想要那樣。理想情況下,如果按鈕獲得焦點時切換已經關閉,那麼是的,它應該再次切換。但fi已經可見,它不應該關閉。
理想情況下,我會使用MultiDataTrigger
,但因爲我發現所有的條件必須是真實的。從here我決定做一組DataTriggers的:
<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
,看看它的工作原理和它,但不是使用合適的物業。
我只是不明白。如果他們點擊按鈕,觸發切換爲真。但別做任何事情。
清澈如泥?
更新:如果我添加一個點擊處理程序到我的按鈕。例如:
<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;
}
它做什麼的想。當按鈕被點擊時,它確保面板現在可見。只要我想要,該面板將保持可見狀態。但我需要爲我想強制面板顯示的每個控件執行此操作。
如果您點擊一個按鈕並且已經選中了togglebutton,該怎麼辦?它應該取消選中或者什麼都不做? – Jose
@Kirenenko在這個時候,我覺得我想要做的就是通過設置切換爲真來觸發開啓面板。用戶可以將其切換回去。 –
好的,那麼我認爲你應該使用後面的代碼。您可以對3個按鈕使用相同的點擊事件。 – Jose