Сделайте весь пользовательский контроль кликабельным, используя InputBindings в wpf - PullRequest
0 голосов
/ 13 февраля 2019

В моем UserControl я нарисовал несколько путей внутри холстанажмите на пути, которые я нарисовал.На самом деле я хочу, чтобы вся поверхность UserControl была кликабельной, а не только нарисованная часть

Я установил фон пользовательского контроля, но он не работает

Как я могу изменить это поведение?

1 Ответ

0 голосов
/ 14 февраля 2019

Это работает для меня:

<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"));

Ваш пользовательский контрользаполнение области, которую вы ожидаете?

Правильно ли привязана ваша команда?

Есть ли что-нибудь, что захватывает клик?

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