如果任何具有焦点的Grid / UserControl子节点如何通过XAML代码设置Panel.Z Index值

时间:2010-08-31 09:45:02

标签: wpf wpf-controls

我想我没有正确解释。所以我刚刚编辑了上一篇文章。

请完成我的确切要求

我有一个按钮的用户控件。我已经编写了代码来放大按钮,如果它通过样式渲染得到焦点。

在我的窗口中,在主网格中我放置了10个此用户控件的实例(每个单元1个控件,共2行5列)。

现在,如果我将注意力集中在第一个用户控制按钮上,它会在获得焦点时正确扩展,并且用户控件也会随按钮一起展开,但扩展的用户控件会进入第二行用户控件。因为当我将焦点设置在按钮上时,用户控件IsFocused仍然是假的

我在窗口资源中写了以下代码,但它对我没有帮助。 (用户控件名称为ucButtonControl)

                          

希望现在的要求非常清楚。如果对此有任何澄清,请告诉我。

1 个答案:

答案 0 :(得分:1)

这里你去(注意:我使用Canvas而不是Grid来更容易演示):

<Canvas>
    <Canvas.Resources>
        <Style TargetType="{x:Type Button}">
            <Style.Triggers>
                <Trigger Property="IsFocused" Value="True">
                    <Setter Property="Panel.ZIndex" Value="999"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Canvas.Resources>
    <Button Background="Red" Width="100">Red</Button>
    <Button Background="White" Width="100" Margin="5">White</Button>
    <Button Background="Blue" Width="100" Margin="10">Blue</Button>
    <Button Background="Green" Width="100" Margin="15">Green</Button>
</Canvas>