Blend和VS2013中针对XAML项目缺少的行为,但存在于Javascript项目中

时间:2014-02-20 16:51:31

标签: c# visual-studio xaml windows-store-apps blend

当我打开XAML项目时,错误列表将报告我打开的每个页面上的所有行为的问题。例子是:

The name "EventTriggerBehavior" does not exist in the namespace "using:Microsoft.Xaml.Interactions.Core"
The name "Interaction" does not exist in the namespace "using:Microsoft.Xaml.Interactivity"

但我确实已经确认了对BehaviorsXamlSDKManaged的引用,该项目确实编译并运行正常。

enter image description here

如果我打开Blend,通过右键单击解决方案资源管理器或在Windows资源管理器中打开它 - Blend将报告相同的错误,当我转到资产列表时 - 行为将为空白

Blank Asset List

如果我创建了Javascript版本,则会找到所有行为。

在这花了几天之后我很难过,任何帮助都会非常感激。

----编辑:我尝试重新安装VS2013

6 个答案:

答案 0 :(得分:2)

我通过为我的手机和Windows项目添加对XAML行为的引用来解决错误: 添加参考 - > Windows 8.1 - >扩展程序 - >行为SDK(XAML)。 Microsoft.Xaml.Interactivity.Interaction不包含在Windows 8.1或Windows Phone 8.1 Core中。

<Page
x:Class="App1.BlankPage1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App1"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:i="using:Microsoft.Xaml.Interactivity"
xmlns:core="using:Microsoft.Xaml.Interactions.Core"
mc:Ignorable="d">

<Page.Resources>
    <local:ItemClickedConverter x:Key="ItemClickedConverter" />
</Page.Resources>

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <GridView>
        <i:Interaction.Behaviors>
            <core:EventTriggerBehavior EventName="ItemClick">
                <core:InvokeCommandAction 
                    Command="{Binding GoToContentCommand}" 
                    InputConverter="{StaticResource ItemClickedConverter}">
                </core:InvokeCommandAction>
            </core:EventTriggerBehavior>
        </i:Interaction.Behaviors>
    </GridView>
</Grid>

答案 1 :(得分:1)

我是如何解决的:

  • 我再次卸载
  • 删除了与VS2013相关的所有额外应用(插件,库,Xamarin等)
  • 重新启动
  • Ran registry cleaner
  • 重新启动

然后使用默认选项重新安装。

为了更好的衡量,我考虑过为编程之神牺牲一头牛,但选择让它们成为一大杯咖啡。

希望这有助于其他人。

-----更新了Ran注册表清理器的详细信息

我使用了Wise Registry Cleaner的免费版本 http://www.wisecleaner.com/wiseregistrycleanerfree.html

它在组件和安装程序中发现了一些问题。我经常发现更复杂的应用程序会留下旧的注册表设置,这使得重新安装不能准确反映全新安装。

答案 2 :(得分:1)

请确保您的项目具有Xaml Behaviors程序集的参考集。右键单击您的项目 - &gt;添加 - &gt;参考。在Windows Phone 8.1(或程序集)下检查 - &gt;扩展和检查Behaviors SDK(XAML)。我希望这会有所帮助。

答案 3 :(得分:0)

确保您的项目定位到4.0或4.5框架。如果您以3.5框架为目标,则不会显示行为。

答案 4 :(得分:0)

更新到Visual Studio Update 2后 - 问题已解决。

答案 5 :(得分:0)

我在Blend 2015中的项目遇到了类似的问题。添加这些引用后,这些行为再次出现(来自Assemblies / Extensions)

  • Microsoft.Expression.Interactions
  • Microsoft.Expression.Prototyping.Interactivity
  • System.Windows.Interactivity