Как установить значение Panel.Zindex через XAML-код, если любой из дочерних элементов Grid / UserControl имеет фокус - PullRequest
1 голос
/ 31 августа 2010

Я думаю, что я не объяснил правильно.Итак, я только что отредактировал предыдущее сообщение.

Пожалуйста, выполните мои точные требования

У меня есть пользовательский контроль с помощью кнопки.Я написал код для увеличения кнопки, если она получает фокус при рендеринге в стиле.

В моем окне в основной сетке я поместил 10 экземпляров этого пользовательского элемента управления (1 элемент управления на ячейку, всего 2 строки и5 столбцов).

Теперь, если я сохраню фокус на первой кнопке пользовательского управления, она расширяется правильно, когда получает фокус, а также пользовательский контроль расширяется вместе с кнопкой, но расширенный пользовательский элемент управления переходит внутрь пользовательского элемента управления 2-й строки,Потому что, когда я установил фокус на кнопке, пользовательский элемент управления IsFocused по-прежнему ложен

Я написал следующий код в ресурсах окна, но он мне не помог.(имя пользовательского элемента управления - ucButtonControl)

Надеюсь, что требования очень ясны сейчас.Если у вас есть какие-либо разъяснения, пожалуйста, дайте мне знать.

1 Ответ

1 голос
/ 31 августа 2010

Вот, пожалуйста (Примечание: я использовал 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>
...