C# 检查代码隐藏中的更改时,更改代码隐藏中的切换按钮样式
这是我的C# 检查代码隐藏中的更改时,更改代码隐藏中的切换按钮样式,c#,wpf,togglebutton,C#,Wpf,Togglebutton,这是我的切换按钮: <ToggleButton ToolTip="Walk!" Name="NavigateWalkOrbitToggleButton" Width="35" Height="35" Style="{DynamicResource MetroCircleToggleButtonStyle}" Checked="NavigateWalkOrbitToggleButton_Checked"> <iconPacks:PackIconMaterial Ki
切换按钮
:
<ToggleButton ToolTip="Walk!" Name="NavigateWalkOrbitToggleButton" Width="35" Height="35" Style="{DynamicResource MetroCircleToggleButtonStyle}" Checked="NavigateWalkOrbitToggleButton_Checked">
<iconPacks:PackIconMaterial Kind="Walk" />
</ToggleButton>
当我单击它时,样式正在正确更改,但当我从“代码隐藏”将IsChecked
更改为false
或true
时,样式不会更改
我正在使用
xmlns:Controls=”http://metro.mahapps.com/winfx/xaml/controls
您在这方面采取了非常糟糕的实践方法
DataTrigger是一种更好的方法
这看起来像这样
<ToggleButton>
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}" BasedOn="{DynamicResource MetroCircleToggleButtonStyle}">
<Setter Property="Foreground" Value="Blue"></Setter>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
test
</ToggleButton>
你的代码后面写着
private void NavigateWalkOrbitToggleButton(object sender, RoutedEventArgs e)
因此事件处理程序不存在
此外,您不会显示您正在运行的问题状态中更改IsChecked属性的代码
一个选项可能是,您只处理选中的,这只会在单击Ischecked变为true而不是取消选中时发生
因此,正如选中的处理程序所做的第一件事是RemoveCheckedToggleButtons()检查设置后会立即取消设置可能您的
样式有问题
?您是否也可以发布MetroCrceletogleButtonStyle
?是否需要代码隐藏更改,因为您应该使用样式中的数据触发器进行更改,而不是代码隐藏请参见:另外,您还没有提供任何代码隐藏,因此如何更改我们能说什么是错误的吗?@MikeTNavigateWalkOrbitToggleButton.IsChecked=false;
您的问题不可复制。您在NavigateWalkOrbitToggleButton\u检查的事件处理程序中做什么?
Checked="NavigateWalkOrbitToggleButton_Checked"
private void NavigateWalkOrbitToggleButton(object sender, RoutedEventArgs e)