我使用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文件中的“使用”语句有关 - 但我不确定......?
我认为行为可以在应用程序级别添加,但谷歌不会返回任何好的例子。我在应用程序级别添加了简单的样式,它们工作正常。
我的问题是:我可以用这种方式添加行为,如果可以的话,我哪里出错?