一个流程中获取前几个步骤选中的按钮并保持选中状态
自定义按钮控件,在点击后重新设置背景图片无效之后,想到通过按钮是否有焦点,通过样式中设置焦点时默认的图片背景来解决。
样式中的触发器
<Trigger Property="IsFocused" Value="true">
<Setter Property="Background" TargetName="Border">
<Setter.Value>
<ImageBrush ImageSource="/Images/MatchSetButton.png"/>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="Border" Value="transparent"/>
<Setter Property="BorderThickness" TargetName="Border" Value="0"/>
</Trigger>
使用示例
//获取某一步骤中所有的子控件
var btns = ControlByDynamic.AddControlDynamic.GetChildObjects<Button>(this.PhasePanel, "");
//遍历子控件
foreach (var bt in btns)
{
//如果是我们已经选择过的按钮,设置焦点
if (bt.Content == setPhaseLabel.Content)
{
bt.Focus();
}
}