System.Windows.Interactivityをプロジェクトに追加する方法は?


106

プロジェクトがありませんSystem.Windows.Interactivity。GoogleはExpression Blendをインストールする必要があると言っていますが、他のコンピューターにはこのライブラリがあり、Expression Blendがインストールされていません。だから、取得する別の方法があるはずSystem.Windows.Interactivityですか?私は何をすべきか?(今私は別のコンピュータを持っていないので、このライブラリをコピーすることはできません:)

回答:


92

行動の公式パッケージは Microsoft.Xaml.Behaviors.Wpfです。

これはBlend SDKに含まれていたもので、非推奨です。移行する必要がある場合の詳細については、Janの回答
参照してください。


2
4.6には対応していません。
alerya 2016

3
それはとても悲しく、私を怒らせます。そのため、悲しいことにコードビハインドを使用しています。MSの恥。
alerya 2016

1
@alerya:1.本当に必要な場合は、そのSDKの動作を自分で完全に記述することができます。2. nu-getパッケージを試しましたか?
HB 2016

1
@シミー:確かに!
HB

6
これは一部の人にとっては明白ですが、参照する必要があるのは次のとおりです。xmlns:i="http://schemas.microsoft.com/xaml/behaviors"そうではありません xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"。これまでに見た他のすべての例のように。
ヨセフベルナル

124

この問題はかなり古いものですが、これは関連するニュース/最新の回答だと思います:MicrosoftのオープンソースXAML動作と、このバージョンに更新する方法をブログに投稿しました:https : //devblogs.microsoft.com/dotnet/open -sourcing-xaml-behaviors-for-wpf /

クリックを節約するには、これが移行の主な手順です。

  1. 「Microsoft.Expression.Interactions」および「System.Windows.Interactivity」への参照を削除します
  2. Microsoft.Xaml.Behaviors.Wpf NuGetパッケージをインストールします。
  3. XAMLファイル– xmlns名前空間http://schemas.microsoft.com/expression/2010/interactivityおよびhttp://schemas.microsoft.com/expression/2010/interactionshttp://schemas.microsoft.com/xamlに置き換えます/ behaviors
  4. C#ファイル– c#ファイル「Microsoft.Xaml.Interactivity」および「Microsoft.Xaml.Interactions」の使用を「Microsoft.Xaml.Behaviors」に置き換えます

6
これは、現在、絶対に正しい答えです。Microsoftがこれをやったことをうれしく思います。投稿いただきありがとうございます。ブログエントリを逃した方法がわかりません。「クールで新しいMicrosoft NuGetパッケージ」のニュースレターがあるはずです。
skst

1
Stackoverflowに感情がある場合、私はあなたの答えにハートを使用します
Ibrahim Kais Ibrahim

1
2019年の時点で選択された回答である必要があります。この重要な更新を追加していただきありがとうございます。

1
私のために働いた。2015年からVS2019にソリューションを更新しました。ありがとうございました。
KulaGGin

1
あなたは内の図形のいずれかの使用している場合また、schemas.microsoft.com/expression/2010/drawingを、あなたが使用することができ、このnugetパッケージを -何のコードの変更は必要ありません。
Daniel Elkington、

59

以下と互換性のあるSystem.Windows.Interactivity.dllを含む新しいNuGetパッケージがあります。

  • WPF 4.0、4.5
  • Silverligt 4.0、5.0
  • Windows Phone 7.1、8.0
  • Windowsストア8、8.1

Expression.Blend.Sdkをインストールするには、パッケージマネージャーコンソールで次のコマンドを実行します。

PM> Install-Package Expression.Blend.Sdk

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


10
このパッケージは公式のMicrosoftディストリビューションではないことに注意してください
piers7

2
MVVM Lightがすでにインストールされている場合は、衝突するバージョンのが導入されSystem.Windows.Interactivityます。解決するには、上記の私の回答を参照してください。
Contango、2015


19

Visual Studio用ブレンドバージョン2013から始まるのVisual Studioに含まれている、あなたは、次のフォルダにDLLを見つけることができます。

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

System.Windows.Interactivity.dllただし、Interactive名前空間を利用する機能を追加するために既存のプロジェクトでBlend for Visual Studioを使用しない限り、自分自身への参照を追加する必要があります。その場合、Blendは参照を自動的に追加します。


7
これは私のプロジェクトの修正に役立ちました。Visual Studio 2017では、Visual Studioインストーラーに移動して、個別コンポーネント(SDKカテゴリ)で見つける必要があります。
PRouleau 2017

18

場合によっては、新しいライブラリを追加すると、での衝突バージョンが導入されSystem.Windows.Interactivity.dllます。

たとえば、NuGetパッケージにMVVM lightはv4.2 ofが必要ですSystem.Windows.Interactivity.dllが、NuGetパッケージにRx-XAMLはv4.5 ofが必要な場合がありSystem.Windows.Interactivity.dllます。これによりプロジェクトが機能しなくなります。どのバージョンSystem.Windows.Interactivity.dllを含めても、ライブラリの1つがコンパイルを拒否するためです。

修正するには、app.config次のように編集してアセンブリバインディングリダイレクトを追加します。

<?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>

変更することを心配しないでください PublicKeyToken。これは、バージョンではなく.dllの名前に依存するため、すべてのバージョンで一定です。

を、実際に指し示す実際のバージョンと一致させnewVersionますappConfig

ここに画像の説明を入力してください


あなたはここでまったく同じ投稿をしました、stackoverflow.com
pix

14

代替ソリューションは、することです変更 Visual Studioインストーラーで、現在のVisual Studioのインストール

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

追加するBlend for Visual Studio SDK for .NET「のSDK、ライブラリ、およびフレームワーク」下の個々のコンポーネントを'

ここに画像の説明を入力してください このコンポーネントSystem.Windows.Interactivityを追加すると、通常の場所に表示されますAdd Reference/Assemblies/Extensions


これはVS2017以前でのみ機能するようです。それ以降のバージョンについては、他の回答を参照してください。


2
私には表示されません:(
Julien

私にも表示されません。VS 2019使用して
バリスAkkurt



0

MVVM Lightを使用している場合は、次の場所にあるSystem.Windows.Interactivity Version 4.0(NuGet .dll は機能しません)を使用する必要があります。

PathToProjectFolder\Software\packages\MvvmLightLibs.5.4.1.1\lib\net45\System.Windows.Interactivity.dll

この.dllをリファレンスとして手動で追加するだけで問題ありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.