Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 为什么滑块事件在重新激活后停止?_Silverlight_Windows Phone 8.1_Win Phone Silverlight 8.1 - Fatal编程技术网

Silverlight 为什么滑块事件在重新激活后停止?

Silverlight 为什么滑块事件在重新激活后停止?,silverlight,windows-phone-8.1,win-phone-silverlight-8.1,Silverlight,Windows Phone 8.1,Win Phone Silverlight 8.1,我正在使用Windows Phone 8.1 Silverlight应用程序,该应用程序在页面上有各种控件的实例、按钮、复选框、单选按钮等以及一个滑块 每个控件都添加了一个事件处理程序,如下所示,此示例特定于滑块,但其他控件仅替换控件类型和实际处理的事件: static void instrumentSlider(Slider slider) { Logger.Logger.LogMessage("instrumentSlider() - Called for: [" + slider

我正在使用Windows Phone 8.1 Silverlight应用程序,该应用程序在页面上有各种控件的实例、按钮、复选框、单选按钮等以及一个滑块

每个控件都添加了一个事件处理程序,如下所示,此示例特定于滑块,但其他控件仅替换控件类型和实际处理的事件:

static void instrumentSlider(Slider slider)
{
    Logger.Logger.LogMessage("instrumentSlider() - Called for: [" + slider + "]");

    slider.ManipulationCompleted -= new EventHandler<ManipulationCompletedEventArgs>(slider_ManipulationCompleted);
    slider.ManipulationCompleted += new EventHandler<ManipulationCompletedEventArgs>(slider_ManipulationCompleted);
}

static void slider_ManipulationCompleted(object sender, ManipulationCompletedEventArgse)
{
    try
    {
        Logger.Logger.LogMessage("slider_ManipulationCompleted() - Called for: [" + sender + "]");

        if (sender is Slider)
        {
            Slider slider = (Slider)sender;
            // Do stuff...
        }
    }
    catch (Exception ex)
    {
        Logger.Logger.LogException(ex);
    }
}
static void工具滑块(滑块)
{
Logger.Logger.LogMessage(“instrumentSlider()-调用:[“+slider+”]”);
slider.OperationCompleted-=新事件处理程序(slider\u OperationCompleted);
slider.OperationCompleted+=新事件处理程序(slider\u OperationCompleted);
}
静态无效滑块\u操纵已完成(对象发送器,操纵已完成事件argse)
{
尝试
{
Logger.Logger.LogMessage(“slider_OperationCompleted()-为:[“+sender+”]”调用);
如果(发送器为滑块)
{
滑块=(滑块)发送器;
//做些事情。。。
}
}
捕获(例外情况除外)
{
Logger.Logger.LogException(ex);
}
}
我可以使用visual Studio 2013将该应用程序下载到手机上,当我按下按钮或移动滑块时,我会看到我希望看到的日志消息,一切正常

在某个时刻,我不小心按下了手机上的照相/摄像机按钮,我的应用程序被停用,照相/摄像机应用程序被激活。我切换回我的应用程序和所有的控制,除了滑块继续产生事件

我错过了什么?我已经尝试了滑块的几个事件,操作完成,焦点丢失,值更改,它们都在应用程序重新激活后停止传递,但来自所有其他控件的事件仍在传递

更新为包含定义控件的XAML片段:

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <Slider Height="84" HorizontalAlignment="Left" Margin="37,243,0,0" Name="slider1" VerticalAlignment="Top" Width="383" />
        <Button Content="Button" Height="72" HorizontalAlignment="Left" Margin="27,18,0,0" Name="button1" VerticalAlignment="Top" Width="160" Click="button1_Click" RenderTransformOrigin="0.531,-0.222" />
        <CheckBox Content="CheckBox" Height="72" HorizontalAlignment="Left" Margin="241,17,0,0" Name="checkBox1" VerticalAlignment="Top" RenderTransformOrigin="0.509,0.181" />
        <HyperlinkButton Content="HyperlinkButton" Height="30" HorizontalAlignment="Left" Margin="27,110,0,0" Name="hyperlinkButton1" VerticalAlignment="Top" Width="200" />
        <ListBox Height="103" HorizontalAlignment="Left" Margin="37,342,0,0" Name="listBox1" VerticalAlignment="Top" Width="383" RenderTransformOrigin="0.499,1.408">
            <ListBoxItem Content="ListItem1" />
            <ListBoxItem Content="ListItem2" />
            <ListBoxItem Content="ListItem3" />
        </ListBox>
        <RadioButton Content="RadioButton" Height="72" HorizontalAlignment="Left" Margin="241,73,0,0" Name="radioButton1" VerticalAlignment="Top" IsChecked="True" />
        <RadioButton Content="RadioButton" Height="72" HorizontalAlignment="Left" Margin="241,126,0,0" Name="radioButton2" VerticalAlignment="Top" RenderTransformOrigin="0.528,0.056" />
        <RadioButton Content="RadioButton" Height="72" HorizontalAlignment="Left" Margin="241,171,0,0" x:Name="radioButton3" VerticalAlignment="Top" RenderTransformOrigin="0.503,1.837" />
        <TextBox Height="72" HorizontalAlignment="Left" Margin="37,445,0,0" Name="textBox1" Text="TextBox" VerticalAlignment="Top" Width="383" />
    </Grid>


据我所知,显示的代码没有问题。也许你也应该发布你的XAML。。。这可能是重新创建控件的问题,因此拥有您所订阅事件的旧控件将丢失,并且没有人订阅新控件的事件。@almulo我在上面添加了一个XAML片段。