Это работает для меня:
<UserControl …
Background="Transparent"
>
<UserControl.InputBindings>
<MouseBinding Gesture="LeftClick" Command="{Binding OpenControlPanelCommand}"/>
</UserControl.InputBindings>
<Canvas>
<Path Data="M0,0L25.194,16 0,32z" Stretch="Fill"
Height="100"
Width="100"
Fill="Black"/>
</Canvas>
</UserControl>
У меня есть это в окне:
<Window.DataContext>
<local:MainWindowViewModel/>
</Window.DataContext>
<Grid>
<local:UserControl1/>
</Grid>
Соответствующая часть vm:
using …
using GalaSoft.MvvmLight.CommandWpf;
namespace wpf_99
{
public class MainWindowViewModel : INotifyPropertyChanged
{
public ICommand OpenControlPanelCommand { get; set; } = new RelayCommand(() => MessageBox.Show("Hello World"));
Ваш пользовательский контрользаполнение области, которую вы ожидаете?
Правильно ли привязана ваша команда?
Есть ли что-нибудь, что захватывает клик?