我有一个具有指示灯和开关的WPF应用程序。当我按下开关时,开关和指示灯应该变为“ON”图像,而当我再次按下时,它们应该变为它们的“OFF”图像。我有一个限制:我只能在XAML中严格执行此操作,因此没有代码隐藏文件。 我这样做的方式是重新定义ToggleButton的控件模板。只有灯开关在这个控制模板中(灯本身不应该是可点击的),这显然是我的问题。我无法从控制模板触发器中访问灯光开关。我得到以下错误“无法找到触发目标‘lightImage’(目标必须出现在任何二传手,触发器,或使用它的条件)。”WPF/XAML:从ControlTemplate访问ControlTemplate外部的元素。触发器
继承人我的代码:
<Image Name="lightImage" Source="Resources/LOFF.bmp" Stretch="None" Canvas.Left="82" Canvas.Top="12"/>
<ToggleButton Canvas.Left="169" Canvas.Top="123">
<ToggleButton.Template>
<ControlTemplate TargetType="ToggleButton">
<Image Name="switchImage" Source="Resources/SUp.bmp"/>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="switchImage" Property="Source" Value="Resources/SDown.bmp" />
<Setter TargetName="lightImage" Property="Source" Value="Resources/LON.bmp"/>
</Trigger>
<Trigger Property="IsChecked" Value="False">
<Setter TargetName="switchImage" Property="Source" Value="Resources/SUp.bmp"/>
<Setter TargetName="lightImage" Property="Source" Value="Resources/LOFF.bmp"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ToggleButton.Template>
</ToggleButton>
是还有另一种方式来做到这一点? 干杯
对不起,它是从错误码的C/P。将其更改为正确的“问题”代码:) – johnrl 2010-11-22 15:51:54