小编Tod*_*her的帖子

当面板中的元素具有焦点时,更改WPF StackPanel背景颜色

如果我在StackPanel中有一组控件,当StackPanel中的任何控件获得焦点时,是否有通用的方法来更改stackpanel的背景?(当StackPanel中的控件没有焦点时,显然会切换背景).下面的代码对我有用,但是有一个通用的方法来完成这个任务,而不必在我的页面中的每个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> 
Run Code Online (Sandbox Code Playgroud)

wpf background focus stackpanel

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

background ×1

focus ×1

stackpanel ×1

wpf ×1