1

我尝试从滑块中捕获 MouseUp 事件,但它永远不会进入处理程序内部。代码是通常的:

<Slider x:Name="sliderTime" 
        MouseLeftButtonDown="sliderTime_MouseLeftButtonDown" 
        MouseLeftButtonUp="sliderTime_MouseLeftButtonUp" />

在后面的代码中:

private void sliderTime_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
    //some code
}

是滑块的错误还是其他什么?谢谢

4

3 回答 3

1

我复制了您发布的代码,它对我有用。

有没有可能事件实际上没有连接起来?

我以两种不同的方式构建它,事件为我触发。你是怎么建造的?

还要检查一下是否有物体覆盖了滑块?

版本 1:打开 Blend 3,文件>创建项目,Silverlight 3 应用程序 + 网站。添加了一个滑块并将其命名(只是因为您这样做了)。添加了一个标签(检查事件触发)。

选择组件,切换事件并双击 MouseLeftButtonDown 和 MouseLeftButtonUp 的事件以创建事件和代码隐藏存根。在 MouseLeftButtonUp 触发时更新了标签。

版本 2:打开 Blend 3,文件>创建项目,Silverlight 3 应用程序 + 网站。添加了滑块和标签。在 Blend 中右键单击 silverlight 项目并在 VS2008 中打开它。使用智能感知在标记中连接事件。

两个版本都对我有用。这是其他代码的一部分吗?如果是这样,请尝试仅使用滑块制作一个版本,看看是否可行,如果可行,则现有代码中的某些内容可能会关闭。我将发布我的代码,以便您查看。

<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dataInput="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input"
    x:Class="SilverlightAppSlider2Test.MainPage"
    Width="640" Height="480">

    <Grid x:Name="LayoutRoot" Background="White">
            <Slider x:Name="sliderTime" MouseLeftButtonUp="Slider_MouseLeftButtonUp" MouseLeftButtonDown="sliderTime_MouseLeftButtonDown" Width="Auto" Height="20" Margin="5"/>
            <dataInput:Label x:Name="Label1" Width="200"/>
    </Grid>
</UserControl>

    private void Slider_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        // TODO: Add event handler implementation here.
        Label1.Content = "Mouse button left released.";
    }
于 2009-10-01T07:34:48.300 回答
0

您可以使用 FrameworkElement.AddHandler 方法来处理此事件。但是,您将无法在 xaml 中将其连接起来。此博客文章中的更多信息:

http://blogs.msdn.com/kmahone/archive/2009/03/19/handling-mouse-input-events-on-controls.aspx

于 2009-10-22T19:31:24.013 回答
0

自 Silverlight 2 Beta 2 以来,许多控件不会触发 MouseDown/MouseUp 事件,我相信 Slider 就是其中之一。您可以通过从 Slider 继承并编写自定义代码来触发这些事件来“解决”该问题。看看这里:http ://forums.silverlight.net/forums/p/18328/61917.aspx

于 2009-10-01T07:00:28.917 回答