wpf - <i : Interaction. Behavior> 选项不适用于应用行为

标签 wpf xaml mvvm blend attachedbehaviors

我一直在尝试在 wpf 窗口上实现一种行为,因此我在当前的解决方案中添加了对 System.Winodws.Interactivity 的引用,然后编写了所需的行为。但为了应用这种行为,我必须在 Windows XAML 中编写类似的内容。

<Window x:Class="WpfApplication5.MainWindow" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        Title="MainWindow" Height="350" Width="525" 
        xmlns:behav ="clr-namespace:WpfApplication5" 
        xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity;assembly=System.Windows.Interactivity">
    <Window.Resources>
        <i:Interaction.Behaviors>
            <behav:DialogIconRemoveBehavior></behav:DialogIconRemoveBehavior>
        </i:Interaction.Behaviors>
    </Window.Resources>
    <Grid>

    </Grid>
</Window>

但这不是有效的标记,因为我可能必须添加对除 System.Windows.Interactivity 之外的任何其他程序集的引用,所以,请提出其他建议
我必须这样做才能在 XAML 中使用标签

最佳答案

浪费了我一个小时之后,我才知道只有我必须将 System.Windows.Interactivity 作为引用,而且我已经这样做了。

问题是无法在任何控件的资源部分中声明行为。

我采取以下措施的那一刻

<i:Interaction.Behaviors>

</i:Interaction.Behaviors>

资源不足,然后它工作正常。

所以,结论只有 System.Windows.Interacivity 是唯一需要的。

永远不要在资源或样式中声明该行为部分。

关于wpf - <i : Interaction. Behavior> 选项不适用于应用行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18778490/

相关文章:

c# - WPF MVVM切换焦点在2个文本框之间

c# - 如何将 MVVM 与 CRUD 操作一起使用?

c# - WPF/XAML 中 Canvas 中的可重复形状

wpf - 如何让图像不拉伸(stretch)?

c# - 这两种声明 self 绑定(bind)的方式有什么区别?

wpf - 通过键绑定(bind)从 Datagrid 传递命令参数

wpf - 在WrapPanel上垂直列出项目并利用多列

WPF 控件作为资源字典中的静态资源,用于多个 WPF 窗口?

c# - xaml.cs 中的 Xamarin 局部变量并通过 XAML 文件打印

wpf - MVVM - 如何根据列表中的选定项目打开窗口?