CompositionTarget.Rendering不喜欢XAML中的事件处理程序

时间:2013-04-03 22:59:40

标签: xaml windows-store-apps

我正在将Windows Phone 7应用程序转换为Windows应用商店,因此我转向Xaml。我有一个在某个点运行的方法来更新屏幕上的数据。它将事件处理程序委托分配或移除到CompositionTarget.Rendering事件。我得到的消息是'OnCompositionTargetRendering'没有重载匹配委托'System.EventHandler''

这就是我所拥有的:

    private void CheckCompleted()
    {
        Color completeColor;
        if (this.DecryptedText.ToString().ToUpper() == this.ThisPuzzle.QuoteText.ToUpper())
        {
            // We're done!!!                ...
            CompositionTarget.Rendering -= this.OnCompositionTargetRendering;// new EventHandler(this.OnCompositionTargetRendering);
            ...
        }
        else
        {
            ...
            CompositionTarget.Rendering += this.OnCompositionTargetRendering;// new EventHandler(this.OnCompositionTargetRendering);
            ...
        }
    }

    protected void OnCompositionTargetRendering(object sender, EventArgs args)
    {
        this.DisplayTime();
        if (ThisPuzzle != null)
        {
            foreach (UIElement thisElement in Letters.Children)
            {
                ...
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

如果您在Windows Store apps中检查文档CompositionTarget.Rendering的类型为EventHandler<object>,而Silverlight中的文档类型为EventHandler

这意味着您需要相应地将事件处理程序的签名更改为:

protected void OnCompositionTargetRendering(object sender, object args)