我可以得到MouseEnter
,MouseLeave
和Click
事件,但不是MouseLeftButtonDown
或MouseLeftButtonUp
。Silverlight MouseLeftButtonDown event not firing
这里是我的XAML
<UserControl x:Class="Dive.Map.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<Canvas x:Name="LayoutRoot" MouseLeftButtonDown="LayoutRoot_MouseLeftButtonDown">
<Button x:Name="btnTest" Content="asdf" Background="Transparent" MouseLeftButtonDown="btnTest_MouseLeftButtonDown"></Button>
</Canvas>
</UserControl>
这里是我的代码
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
private void btnTest_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
btnTest.Content = DateTime.Now.ToString();
}
private void LayoutRoot_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
e.Handled = false;
}
}
我在做什么错?
我有一个按钮,作为拖放手柄。我想要检测用户何时按下按钮,然后我可以在MouseMove期间开始重新定位控件,然后停止在MouseUp事件上重新定位。我该怎么做呢? – Matt
@Matt:停止使用拖放控制按钮?这真的取决于__why__你想要这个。例如,如果您正在创建某种UI构建器,则可以将该按钮放置在一个网格中,该网格也具有覆盖该按钮的透明画布。然后,您可以管理画布上的事件。注意画布和按钮将是兄弟,该按钮不会是画布的子项。 – AnthonyWJones
很酷。我最终为我的按钮创建了一个内容模板,然后在ControlTemplate元素上监听MouseDown/MouseUp事件。 – Matt