3
如果我在StackPanel內有一組控件,那麼當StackPanel中的任何控件獲得焦點時,是否有一種通用方法來更改堆棧面板的背景? (並且在StackPanel中沒有控件具有焦點時,顯然會將背景切換回來)。以下代碼適用於我,但使用通用方法來完成此任務,而不必在我的頁面中的每個StackPanel中列出每個控件都是很好的做法。當面板中的某個元素具有焦點時更改WPF StackPanel背景顏色
謝謝!
<StackPanel Margin="5">
<StackPanel.Style>
<Style TargetType="{x:Type StackPanel}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsFocused, ElementName=chkOccupiedByMortgagor}" Value="true">
<Setter Property="Background" Value="Gray" />
<Setter Property="Opacity" Value=".5" />
</DataTrigger>
<DataTrigger Binding="{Binding IsFocused, ElementName=chkOccupiedByNewOwner}" Value="true">
<Setter Property="Background" Value="Gray" />
<Setter Property="Opacity" Value=".5" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
<CheckBox Margin="2" x:Name="chkOccupiedByMortgagor">Mortgagor</CheckBox>
<CheckBox Margin="2" x:Name="chkOccupiedByNewOwner">New Owner</CheckBox>
<CheckBox Margin="2" x:Name="chkOccupiedByTenant">Tenant</CheckBox>
<CheckBox Margin="2" x:Name="chkOccupiedByUnknownOccupant">Unknown Occupant</CheckBox>
</StackPanel>
很酷!正是我在找什麼!非常感謝! – 2010-09-30 16:23:31