XAML - 如何在页面或应用程序级别声明行为

时间:2015-05-05 16:36:58

标签: c# wpf xaml windows-phone-8.1

我使用Blend将以下行为添加到WinPhone8.1 App中的自定义用户控件:

<Interactivity:Interaction.Behaviors>
            <Core:EventTriggerBehavior x:Name="Pressed" EventName="PointerPressed">
                <Core:ChangePropertyAction PropertyName="Background">
                    <Core:ChangePropertyAction.Value>
                        <SolidColorBrush Color="#FF75807F"/>
                    </Core:ChangePropertyAction.Value>
                </Core:ChangePropertyAction>
            </Core:EventTriggerBehavior>
            <Core:EventTriggerBehavior x:Name="Released" EventName="PointerCaptureLost">
                <Core:ChangePropertyAction PropertyName="Background"/>
            </Core:EventTriggerBehavior>
        </Interactivity:Interaction.Behaviors>

此行也已添加到我的UserControl XAML:

xmlns:Interactivity="using:Microsoft.Xaml.Interactivity" xmlns:Core="using:Microsoft.Xaml.Interactions.Core"

这很好,效果很好。我希望将此代码移动到App.xaml中,以便将行为添加到不同的网格中。

我将“using”语句移动到App.xaml文件: xmlns:Interactivity="using:Microsoft.Xaml.Interactivity" xmlns:Core="using:Microsoft.Xaml.Interactions.Core"以及样式:

<Style TargetType="Grid" x:Key="ClickableGrid2" >
<Interactivity:Interaction.Behaviors>
    <Core:EventTriggerBehavior x:Name="Pressed" EventName="PointerPressed">
        <Core:ChangePropertyAction PropertyName="Background">
            <Core:ChangePropertyAction.Value>
                <SolidColorBrush Color="#FF75807F"/>
            </Core:ChangePropertyAction.Value>
        </Core:ChangePropertyAction>
    </Core:EventTriggerBehavior>
    <Core:EventTriggerBehavior x:Name="Released" EventName="PointerCaptureLost">
        <Core:ChangePropertyAction PropertyName="Background"/>
    </Core:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>

我还引用了网格中的样式:

<Grid x:Name="QuestionGrid" Background="White" Style="{StaticResource ClickableGrid2}">
    controls omitted...
</Grid>

代码编译但是当我在调试模式下运行时,我会在应用程序启动后立即收到以下错误:

  

无法反序列化XBF元数据类型列表,因为在命名空间'%0'中找不到'%1'。 [行:0位置:0]

没有内在的例外。没有太多细节,但我假设错误与我添加到App.xaml文件中的“使用”语句有关 - 但我不确定......?

我认为行为可以在应用程序级别添加,但谷歌不会返回任何好的例子。我在应用程序级别添加了简单的样式,它们工作正常。

我的问题是:我可以用这种方式添加行为,如果可以的话,我哪里出错?

0 个答案:

没有答案