我有ToggleButton
:
<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
相关的问题是,虽然我让它为一个控件工作,并且切换触发,但是当我将焦点放在另一个控件上时,切换开关关闭。我真的不想要那个。理想情况下,如果按钮获得焦点时切换已经关闭,那么是的,它应该再次关闭。但它已经可见,它不应该关闭。
理想情况下,我会使用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
查看它是否有效但是确实如此,但这不是正确的属性。
我无法做对。如果他们单击按钮,则触发切换为true。但别做其他事情。
清除泥土?
更新:如果我在我的按钮上添加了一个点击处理程序。例如:
<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;
}
它做了想做的事。单击该按钮,可确保现在可以看到面板。只要我愿意,面板就会保持可见状态。但我需要为我想强制显示的每个控件执行此操作。
答案 0 :(得分:0)
您可以使reflective_provider.js:233 Uncaught Cannot resolve all parameters for 'AuthGuard'(undefined, CheckSessionService, Router).
Make sure that all the parameters are decorated with Inject or have valid type annotations and that 'AuthGuard' is decorated with Injectable.
像OR一样工作而不是AND,因为:
(A和B)&lt; =&gt; ¬(¬A或¬B)
应用于您的代码:
MultiDataTrigger
因此,您将所有true值反转为false,并将tooglebutton.IsChecked的默认值设置为true。这样,如果每个按钮都未按下,您只会取消选中您的toogle按钮。