ti-enxame.com

Como adicionar System.Windows.Interactivity ao projeto?

Meu projeto está faltando System.Windows.Interactivity. O Google diz que tenho que instalar o Expression Blend, mas no meu outro computador eu tenho essa biblioteca e não tenho o Expression Blend instalado. Então deveria haver outra maneira de obter System.Windows.Interactivity? O que devo fazer? (agora eu não tenho outro computador, então eu não posso simplesmente copiar esta biblioteca :)

55
javapowered

Está no SDK do Blend, existe um pacote NuGet para ele ou você pode obtê-lo aqui (desatualizado).

53
H.B.

Há um novo pacote NuGet que contém o System.Windows.Interactivity.dll que é compatível com:

  • WPF 4.0, 4.5
  • Silverligt 4.0, 5.0
  • Windows Phone 7.1, 8.0
  • Windows Store 8, 8.1

Para instalar o Expression.Blend.Sdk, execute o seguinte comando no Package Manager Console

PM> Install-Package Expression.Blend.Sdk

http://www.nuget.org/packages/Expression.Blend.Sdk/

54
Thomas

A maneira mais fácil pode ser obtê-lo no NuGet:

http://www.nuget.org/packages/System.Windows.Interactivity.WPF/

22
seabass2020

Com Blend para Visual Studio, que está incluído no Visual Studio a partir da versão 2013, você pode encontrar o DLL na seguinte pasta:

C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NETFramework\v4.5\Libraries

No entanto, você terá que adicionar a referência ao System.Windows.Interactivity.dll, a menos que você use o Blend para Visual Studio com um projeto existente para adicionar uma funcionalidade que faça uso do namespace Interactivity. Nesse caso, o Blend adicionará a referência automaticamente.

18
poke

Às vezes, quando você adiciona uma nova biblioteca, introduz uma versão conflitante de System.Windows.Interactivity.dll.

Por exemplo, o pacote NuGet MVVM light pode exigir v4.2 de System.Windows.Interactivity.dll, mas o pacote NuGet Rx-XAML pode exigir v4.5 de System.Windows.Interactivity.dll. Isso impedirá que o projeto funcione, porque não importa qual versão de System.Windows.Interactivity.dll você inclua, uma das bibliotecas se recusará a compilar.

Para corrigir, adicione um Redirecionamento de Ligação de Montagem editando seu app.config para se parecer com isto:

<?xml version="1.0"?>
<configuration>
<runtime>
  <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Windows.Interactivity"
                        publicKeyToken="31bf3856ad364e35"
                        culture="neutral"/>
      <bindingRedirect oldVersion="4.0.0.0"
                       newVersion="4.5.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
<appSettings>
  <add key="TestKey" value="true"/>
</appSettings>

Não se preocupe em alterar o PublicKeyToken, que é constante em todas as versões, pois depende do nome do arquivo .dll, não da versão.

Certifique-se de combinar o newVersion no seu appConfig com a versão real que você aponta para:

enter image description here

17
Contango

A solução alternativa é modificar sua instalação atual do Visual Studio no Visual Studio Installer

Win+R %ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vs_installer.exe

adicionando o Blend for Visual Studio SDK for .NET 'Componente individual' em 'SDKs, bibliotecas e frameworks':

enter image description here após adicionar este componente, System.Windows.Interactivity deve aparecer em sua localização regular Add Reference/Assemblies/Extensions.

11
wondra

Está no MVVM Light, obtenha-o na Página de Download do MVVM Light .

2
Contango

Comprei-o através do pacote NuGet Prism.WPF. (inclui Windows.System.Interactivity)

1
Halloween_Udo

Embora esse problema seja bastante antigo, acho que esta é uma notícia relevante/a resposta mais recente: Microsoft XAML Behaviors de código aberto e postou uma postagem no blog como atualizar para esta versão: https://devblogs.Microsoft.com/dotnet/open-sourcing-xaml-behaviors-para-wpf /

Para economizar um clique, estas são as principais etapas da migração:

  1. Remover referência a "Microsoft.Expression.Interactions" e "System.Windows.Interactivity"
  2. Instale o pacote NuGet "Microsoft.Xaml.Behaviors.Wpf".
  3. Arquivos XAML - substituem os namespaces xmlns http://schemas.Microsoft.com/expression/2010/interactivity e http://schemas.Microsoft.com/expression/2010/interactions com http://schemas.Microsoft.com/xaml/behaviors
  4. Arquivos C # - substitua os usos em arquivos c # “Microsoft.Xaml.Interactivity” e “Microsoft.Xaml.Interactions” com “Microsoft.Xaml.Behaviors”
0
Jan