WPF - скрыть элемент при наведении мыши на другой элемент - PullRequest
0 голосов
/ 08 марта 2019

Есть несколько элементов в сетке, и все, что я хочу, это показать / скрыть кнопку, когда мышь находится над прямоугольником.

<UserControl ...>
    <Grid>
        <Rectangle ...>
        <Button ...>
    </Grid>
</UserControl>

Я пробовал несколько триггеров, но пока не получилось,Пожалуйста, помогите.

1 Ответ

1 голос
/ 08 марта 2019

Это то, что вам нужно: Datatrigger привязан к контролю, чтобы вызвать его В качестве альтернативы вы можете использовать конвертер типа BoolenToInvisibilityConverter

Ps, если вы хотите инвертировать логику, вам нужно установить видимость в стиле, как это было бы перезаписано в других случаях

            <StackPanel>
                <Rectangle Fill="Red" Height="20" Width="29" Name="MyRect"/>
                <Button>
                    <Button.Style>
                        <Style TargetType="Button">
                        <!--<Setter Property="Visibility" Value="Hidden"/>-->
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding ElementName=MyRect, Path=IsMouseOver}" Value="True">
                                    <Setter Property="Visibility" Value="Hidden" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </Button.Style>                    
                </Button>
            </StackPanel>

ландшафт триггера в Wpf иногда может сбивать с толку, не волнуйтесь, вы научитесь жить с ним!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...