2010-07-14 4 views
0

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

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

ответ

1

Все, что вам нужно сделать, это поместить изображение внутри кнопки (например, с помощью Popup), вы даже можете сделать все это в 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

хороший ответ, спасибо большое! – Thomas

0

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

0

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

Смежные вопросы