silverlight MouseLeftButtonDown无法触发解决办法

 Silverlight中绑定了MouseLeftButtonDown事件,但MouseLeftButtonDown事件却没有触发。

出现这样的原因主要是因为MouseLeftButtonDown事件是一个RoutedEvent , 在routing过程中被标记为handled, 因此控件不会再抛出该事件,因此你的事件处理方法也无法做出响应。

 


使用UIElement.AddHandler 方法指定已经被handled的事件。
<UserControl name ="uc" MouseLeftButtonDown = "uc_MouseLeftButtonDown"  />

uc.AddHandler(MouseLeftButtonDownEvent, new MouseButtonEventHandler(uc_MouseLeftButtonDown), true);

void uc_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{


}

这样就可以解决问题了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要将C#中的MouseLeftButtonDown事件绑定到命令,可以使用以下代码: 1. 在XAML中添加事件触发器: ``` <Button Content="Click Me" MouseLeftButtonDown="Button_MouseLeftButtonDown"/> ``` 2. 在C#中创建命令和命令绑定器: ``` public class MyCommand : ICommand { public event EventHandler CanExecuteChanged; public bool CanExecute(object parameter) { return true; } public void Execute(object parameter) { // 命令要执行的代码 } } public class MyCommandBinding : DependencyObject { public static readonly DependencyProperty CommandProperty = DependencyProperty.RegisterAttached( "Command", typeof(ICommand), typeof(MyCommandBinding), new PropertyMetadata(null, CommandPropertyChanged)); public static ICommand GetCommand(DependencyObject obj) { return (ICommand)obj.GetValue(CommandProperty); } public static void SetCommand(DependencyObject obj, ICommand value) { obj.SetValue(CommandProperty, value); } private static void CommandPropertyChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e) { var element = obj as UIElement; if (element != null) { element.MouseLeftButtonDown += (sender, args) => { var command = e.NewValue as ICommand; if (command != null && command.CanExecute(null)) { command.Execute(null); } }; } } } ``` 3. 在XAML中绑定命令: ``` <Button Content="Click Me" local:MyCommandBinding.Command="{Binding MyCommand}"/> ``` 这将使用自定义的命令绑定器将命令绑定到MouseLeftButtonDown事件。当按钮被点击时,命令将被执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值