wpf 如何引用系统Windows.Interactivity.从ResourceDictionary中的nuget包中获取dll

q8l4jmvw  于 2023-05-01  发布在  Windows
关注(0)|答案(1)|浏览(185)

我试图用微软的nuget包替换Blend。Xaml.Behaviors.Wpf以便继续使用系统。Windows.Interactivity.dll.
这是我尝试的解决方案。如何添加系统Windows.项目的交互性?
为了保存您的点击,这是迁移的主要步骤:
1.删除对“Microsoft.表达。互动”和“系统。Windows.交互”
1.安装Microsoft。Xaml.Behaviors.Wpf NuGet包。XAML文件
1.用http://schemas.microsoft.com/xaml/behaviors替换xmlns命名空间http://schemas.microsoft.com/expression/2010/interactivityhttp://schemas.microsoft.com/expression/2010/interactions

  1. C#文件替换C#文件中的用法“Microsoft.Xaml.Interactivity”和“Microsoft.Xaml。与Microsoft的交互。Xaml行为”
    在删除对“Microsoft.表达。互动”和“系统。下面的代码报告了一个错误,我不知道如何解决它。请指教,谢谢。
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" //line 3
                    xmlns:ei="http://schemas.microsoft.com/xaml/behaviors"  
                    >

严重度代码描述项目文件行抑制状态错误XLS0418组件系统。未找到“Windows.Interactivity”。确认没有缺少程序集引用。此外,请验证是否已生成项目和所有引用的程序集。许可证C:\GitHub\Dependency\licenseAPI\License\License\Assets\Modern_Resource_Dictionary。xaml 3
我更新代码如下:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
                    xmlns:ei="http://schemas.microsoft.com/xaml/behaviorss"  
                    >

将出现另一个错误:

<i:Interaction.Behaviors>
                    <ei:FluidMoveBehavior AppliesTo="Children" Duration="0:0:0.25">
                        <ei:FluidMoveBehavior.EaseX>
                            <SineEase EasingMode="EaseIn" />
                        </ei:FluidMoveBehavior.EaseX>
                    </ei:FluidMoveBehavior>
                </i:Interaction.Behaviors>

严重性代码描述项目文件行抑制状态错误XDG0008名称“FluidMoveBehavior”在命名空间“www.example.”中不存在 www.example.com C:\GitHub\Dependency\licenseAPI\License\License\Assets\Modern_Resource_Dictionary。xaml 239
严重性代码描述项目文件行抑制状态错误XLS0414未找到类型“ei:FluidMoveBehavior”。请验证没有丢失程序集引用,并且已生成所有引用的程序集。HPTCCSLicense C:\GitHub\Dependency\licenseAPI\License\License\Assets\Modern_Resource_Dictionary。xaml 239

brvekthn

brvekthn1#

使用Microsoft.Xaml.Behaviors.Wpf包时,应将i:ei:前缀Map到相同的XAML命名空间:

xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
xmlns:ei="http://schemas.microsoft.com/xaml/behaviors"

或者简单地使用单个命名空间声明:

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <StackPanel>
        <Rectangle Fill="Yellow" Stroke="Black" Width="100" Height="100">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="MouseEnter" >
                    <!-- Execute a method called 'SomeMethod' defined in the view model -->
                    <i:CallMethodAction TargetObject="{Binding}" MethodName="SomeMethod"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </Rectangle>
    </StackPanel>
</Window>

相关问题