WPF: Как я могу создать всплывающее изображение, которое перекрывает кнопку? - PullRequest
0 голосов
/ 14 июля 2010

Я хочу использовать кнопку, которая при нажатии кнопки мыши отображает всплывающее изображение.Сложность состоит в том, что изображение будет перекрывать кнопку, и я хочу, чтобы изображение оставалось видимым, пока мышь не покинет кнопку или изображение.Я обнаружил, что, поскольку изображение перекрывает кнопку, я не могу использовать событие нажатия кнопки мыши, как только мышь перемещается по той части кнопки, которая перекрывается изображением, изображение скрыто.

Это кажется простым требованием, но я просто не могу получить рабочее решение, и любая помощь будет очень признательна

Ответы [ 3 ]

1 голос
/ 14 июля 2010

Все, что вам нужно сделать, это поместить изображение внутри кнопки (например, с помощью всплывающего окна), вы даже можете сделать все это в XAML:

<Button>
    <Button.ContentTemplate>
        <DataTemplate>
            <Grid>
                <TextBlock Text="Button Text"/>
                <Popup Name="popup">
                    <Image Source="Image.png"/>
                </Popup>
            </Grid>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding IsMouseOver,RelativeSource={RelativeSource TemplatedParent}}" Value="true">
                    <Setter TargetName="popup" Property="IsOpen" Value="true"/>
                </DataTrigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </Button.ContentTemplate>
</Button>

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

0 голосов
/ 14 июля 2010

Попробуйте установить «IsHitTestVisible» этого изображения в False.

0 голосов
/ 14 июля 2010

Проверка Mouse.Capture на MSDN .
Таким образом, вы можете убедиться, что элемент получает ввод от мыши независимо от того, находится курсор внутри его границы или нет.

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