Достаточно просто поместить прозрачный элемент поверх другого элемента в WPF.В приведенном ниже примере WPF показана прозрачная рамка, перекрывающая кнопку на элементе управления Grid.
<Grid Background="#006000">
<Button Content="clicky" Click="clicky"
HorizontalAlignment="Left" Margin="30"/>
<Border Background="#00FFFFFF" >
<Border.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick "
Command="{Binding CommandDoubleClick}"/>
</Border.InputBindings>
</Border>
</Grid>
![enter image description here](https://i.stack.imgur.com/FLYY2.png)
Элемент Border
имеет двойной щелчокпривязанная к нему команда.
Проблема заключается в том, что прозрачный Border
, перекрывающий Button
, предотвращает нажатие Button
.Вы не можете щелкнуть по элементу Border
, чтобы перейти к элементам под ним.Если вам не нужен доступ к чему-либо под прозрачным элементом, то это должно работать для вас.Если вам нужен доступ к элементам прозрачного элемента, это вообще не сработает.
Ниже показан код RelayCommand и связанный метод, связанный с событием двойного щелчка на границе:
private bool CanDoubleClick = true;
RelayCommand commandDoubleClick;
public ICommand CommandDoubleClick
{
get
{
if (commandDoubleClick == null)
{
commandDoubleClick = new RelayCommand(param => DoubleClickMethod(),
param => CanDoubleClick);
}
return commandDoubleClick;
}
}
private void DoubleClickMethod()
{
MessageBox.Show("Double-Clicked the Border");
}
Этот код помещается в ViewModel, который используется для DataContext окна, содержащего прозрачную границу.Вам нужно немного изучить шаблон проектирования MVVM, команды ретрансляции и привязку.
К сожалению, нет события двойного щелчка, напрямую доступного для Border
или другого элемента панели, который вы можетеиспользуйте, поэтому нужны более сложные InputBindings.