问题标签 [attachedbehaviors]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - WPF 为什么在定义附加行为时需要这些方法?
这两种方法似乎没有在任何地方调用。是为了使用附加行为而需要它们,还是只是为了获得财产而提供便利?
示例中的完整代码http://www.codeproject.com/Articles/28959/Introduction-to-Attached-Behaviors-in-WPF
c# - 如何将参数传递给 TargetedTriggerAction
我的 DataGrid 中有这个 goto 功能。这个功能我想远离我的 ViewModel 和代码隐藏,所以下面的附件可能是完美的,但是......
用户输入一个行(项目)编号,然后当用户单击 GotoButton 时,它会将项目带入视图。
这是 TargetedTriggerAction 类。
我想以某种方式从 GotoTextbox 传递文本,我可以做一些绑定吗?我怎么能做到这一点?
wpf - 以编程方式指定 HeaderTemplate 的绑定
我在TabControl
. 幸运的是,我在这篇 CodeProject 文章中找到了一些我认为可以解决我所有问题的东西。
但是,此解决方案引入了一个问题,那就是它破坏了我的HeaderTemplate
. 选项卡标题与内容控件具有相同的内容。
我的视图使用这样的 TabControl:
来自behaviors:TabItemGeneratorBehavior
CodeProject 文章。里面TabItemGeneratorBehavior
是一个生成的方法TabItems
:
我认为我的问题在于为HeaderProperty
. 如何设置绑定以使其使用HeaderTemplate
上面 XAML 中定义的内容?
wpf - 将行为附加到 GridView 中的项目
我有一个 ListView 和一个用于呈现项目的 GridView。ListView 的定义如下
如何将自定义行为附加到列表中的每个项目(所有项目的一个行为)?
提前致谢!
c# - 通过样式添加行为
如何通过 WPF 中的样式添加行为?
具体来说,我需要通过 ItemContainerStyle 向 TreeViewItem 添加一个行为。
但是在运行时,我得到了这个:
System.Windows.Markup.XamlParseException:'设置属性'System.Windows.Setter.Property'引发异常。' 行号“422”和行位置“34”。---> System.ArgumentNullException:值不能为空。参数名称:属性在 System.Windows.Setter.CheckValidProperty(DependencyProperty property) at......
设计器也有错误:
属性“行为”不是 DependencyProperty。要在标记中使用,非附加属性必须通过可访问的实例属性“行为”在目标类型上公开。对于附加属性,声明类型必须提供静态“GetBehaviors”和“SetBehaviors”方法。
wpf - 如何修复 AttachedBehavior 上的 DependencyPropertyDescriptor AddValueChanged 内存泄漏?
我知道我需要打电话RemoveValueChanged
,但我一直找不到可靠的地方打电话。我正在学习可能没有。
我看起来需要找到一种不同的方法来监视更改,然后使用AddValueChanged
. 我正在寻找实现这一目标的最佳方法的建议。我已经看到在 中使用 a 的建议PropertyChangedCallback
,但是当我的和不是静态的PropertyMetadata
时我不确定如何执行此操作。此外,该属性不是在我的班级中创建的。TextBox
Adorner
IsFocused
DependencyProperty
c# - Pass type parameters to attached behaviors
I am implementing an attached behavior in a WPF application. I need to pass a type parameters to the behavior, so I can call a method void NewRow(Table<T> table)
on SqliteBoundRow
. If I was instantiating an object in XAML, I would pass a type parameters using x:TypeArguments
, but I don't see a way to do this when setting an attached behavior, because it uses a static property.
Code for the attached behavior looks like this:
XAML looks like this:
My current solution is to wrap DataGridBehavior in a a derived class which specifies the type parameters.
c# - 如何以编程方式向 ContentControl 添加和删除位图效果故事板
我有以下未完成的行为。请注意,TransitionElement 基本上是一个 ContentControl。
我想创建两个使用 BlurBitmapEffect 来模糊和取消模糊控件的故事板。
如果 ContentControl Enabled 属性设置为 false,我想添加情节提要并开始模糊。
如果 Enabled 设置为 true,我想运行一个故事板来取消模糊控件,并在完成后删除两个故事板,有效地删除任何位图效果。
当我锁定和解锁我的应用程序时,我正在这样做。
我发现通过带有样式的 XAML 执行此操作会对图形性能产生巨大影响。然后我在下面找到了一些注释。所以我想为什么不应用这些故事板,然后将它们完全删除。
小心使用 WPF 位图效果。在我写这篇文章的时候,WPF 位图效果是在软件模式下呈现的。任何应用效果的对象也将在软件中呈现。位图效果不应应用于大型视觉效果。此外,效果的动画属性会降低性能。此时,我建议您谨慎使用位图效果,并将其用于按钮、文本框等相对较小的视觉 UI 对象。随意制作动画效果,但我再次推荐相对较小、微妙的动画。
我刚刚注意到 BitmapEffect 已被贬值,而 Effect 是可以使用的。
c# - 如何让交互行为在 UserControl 上起作用
我有以下带有附加行为的 UserControl。目前,我必须选择其中一项 DataGrid 项目才能运行该行为。
只是在这里猜测,但这是可以理解的,因为这些容器不可聚焦或不应该注册键盘事件,所以它会转到下一个可用的孩子???
我可以将此功能放在窗口上,但是此 UserControl 可以与另一个 UserControl 交换,我更喜欢它不要躺在那里。这只是我的应用程序中的一个独特情况,其中窗口上唯一的东西是 DataGrid,我不一定要选择 DataGrid 项来开始该行为。
我的问题是:是否有可能使以下行为起作用?在 UserControl、Grid 或其他一些允许这样做的控件上。
这是行为:
wpf - 有没有一种安全的方法来分离/卸载行为而没有副作用?
在 WPF 和 WinRT 中,众所周知,行为不会可靠地调用它们的 Detach 方法。避免内存泄漏的唯一方法是订阅 AssociatedObject 的 Unloaded 事件并取消挂钩所有事件(示例)。
到目前为止它有效。
但我意识到(就像其他评论我链接的博客条目的人一样)以这种方式卸载的行为再也不会附加。以 MenuFlyout 为例。如果有附加到 MenuFlyoutItem 的行为,则会在 MenuFlyoutItem 关闭时将其卸载。如果您再次打开菜单,它将不会重新附加。
这也发生在其他用户控件上。尽管重新创建了所有控件,但在我的 WinRT 应用程序中从一个页面导航到另一个页面并再次返回时,我“丢失”了行为。我看不到如何在 WinRT 应用程序中使用它们,在该应用程序中,通过导航重新创建了许多控件。
有什么已知的解决方案吗?