我有一個具有指示燈和開關的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