问题标签 [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.
c# - 通过匿名委托取消订阅事件
我多次使用 Resharper 5.1 代码分析我从 resharper 得到评论
“通过匿名委托取消订阅事件”
我该如何纠正或优化这件事
wpf - WPF/WP7 附加行为 - 在触发关联对象的事件之前执行
我正在尝试了解 WPF/WP7 Silverlight 中的附加行为,我遇到了一个概念障碍,我想知道是否有人可以权衡。
我正在尝试创建的功能示例如下:用户单击其 Click 处理程序触发导航的按钮(即 NavigationContext.Navigate()),并且在实际发生导航之前,按钮上会出现动画将其不透明度从 1 降低到 0(“淡出”效果)。
所以,按顺序:
- 用户点击按钮
- 按钮执行动画
- 导航发生
很简单,对吧?我创建了一个看起来像这样的附加行为:
如果按钮所在页面的 .xaml.cs 不包含触发导航的 Click 处理程序,这显然可以正常工作,但是当我连接它时,动画在导航发生之前没有完成。我当然理解为什么会这样,但我想知道是否有一种方法可以实现这一点,同时也展现出非糟糕设计的美妙特性。
我发现这个看似相关的 SO 线程,但接受的答案真的是唯一的方法吗?
谢谢你的帮助。
编辑:如果你碰巧有一个 WP7 并且一心想弄清楚这一点,Reddit 阅读器应用程序“Baconit”会表现出类似于我在单击故事标题时感兴趣的行为。
wpf - IsDisabled 附加属性
我们如何将属性附加到已知属性,例如“IsDisabled”?例如,当我的控件被禁用时,我希望另一个属性接管并更改一些内容。
wpf - 带有附加命令行为的树视图事件
我想用 ACB 处理树视图上的事件(http://marlongrech.wordpress.com/2008/12/04/attachedcommandbehavior-aka-acb/)。
我被 XAML 文件中的绑定卡住了。该事件被触发,但我在 ACB 库中不断收到空引用异常,因为策略为空:
在 XAML 文件中,我添加了以下内容(摘录):
在 Viewmodel 中我添加了:
谁能帮我装订?
问候,
米歇尔
c# - MVVM 处理 MouseDragElementBehavior 的拖动事件
这个问题用文字告诉我该怎么做,但我不知道如何编写代码。:)
我想做这个:
但正如另一个问题所概述的那样,EventTrigger 不起作用......我认为这是因为它想在DragFinished
.SomeUIElement
而不是MouseDragElementBehavior
. 那是对的吗?
所以我想我想做的是:
- 编写一个继承自的行为
MouseDragElementBehavior
- 覆盖
OnAttached
方法 - 订阅该
DragFinished
事件...但我无法弄清楚执行此操作的代码。
请帮忙!:)
c# - 触发器中的附加行为导致构建错误
我有一个带有控件模板的样式,但无法编译它。我正在尝试触发附加行为。如果我把它放在控制模板触发器中它工作正常......但是如果我把它放在文本框触发器中,我会收到一个构建错误,上面写着:
在“TextBoxBehavior”类型上找不到静态成员“SelectAllProperty”
这是我的代码:
关于为什么一个给出构建错误而另一个没有的任何想法?
c# - WPF DataGrid 上的拖放行行为
我正在尝试做一个附加的行为来重新排序行Drag & Drop
我找到了一些解决方案(在 Stackoverflow 上并通过谷歌搜索)并使用它们我试图做出这种行为......我以 Hordcodenet 网站为例(我现在没有链接)
代码
助手类
/// /// 常见的 UI 相关的辅助方法。/// 公共静态类 UIHelpers {
}
问题是OnMouseLeftButtonDown
当我将事件按在一行上以拖动它时不会调用它......但OnMouseLeftButtonUp
在那之后调用它......
有没有办法做到这一点......
我似乎找不到方法
c# - WPF DataGrid 中的通用拖放行为
我做了一个行为拖放 Beahvior,它采用一个集合(实现 IList,如 ObservableCollection,LIst)
它的工作正常...
但如果我使用CollectionViewSource.View(在 Xaml 绑定中),行为 falis....
我怎样才能使这种行为通用(就像独立于 DataGrid 的 DataSource 类型一样)
是否有可能,因为我正在使用 IList 接口的方法,例如
c# - 在 Tab 按键上将新项目添加到 ListBox
我有一个 WPF 列表框,带有一个用于列表框 ItemTemplate 的自定义 DataTemplate(每个项目都有一组控件;即文本框和日期选择器)。我有一个附加到最后一个 DatePicker 的行为,它允许用户在事件处理程序中为 PreviewKeyDown 事件执行 ICommand。
这个想法是,用户将通过 ListBoxItem 中的控件进行 TAB,当他们到达最后一个控件时,再次按 TAB,一个新的 ListBoxItem 将添加到 ListBox。然后焦点将移至下一个 ListBoxItem 中的第一个控件。当 ListBox 中已有 2 个项目并且您在第一个项目中切换时,我的解决方案可以正常工作。如果 ListBox 中只有一项,并且您到达最后一个控件,则会添加新的 ListBoxItem(如预期的那样),但焦点会从 ListBox 移到下一个父控件。
这就像调用 Behavior 代码并调用 ICommand 一样,但 TAB 事件会继续进行,而无需等待添加新的 ListBoxItem。
有什么建议么?
我的行为(ZBehaviorBase 只是一个允许“更好”清理的类):
XAML:
在“线模板”内:
在命令的“Execute”方法中唯一要做的就是将一个对象添加到一个集合中,该集合是 ListBox 的 ItemsSource
wpf - 如何在 WPF 中为按钮中的图像设置动画以每 30 秒抖动一次?
在处理任何与样式和动画有关的事情时,我并不擅长。
当按钮 Visibility 设置为 Visibility.Visible 时,我希望能够获得一些帮助,使图像是 Button 每 30 秒抖动一次的唯一内容。
这是为了引起用户的注意,鼓励他们点击按钮。
我更愿意将此作为 Image 上的附加行为,或者如果可能的话,甚至是 UIControl,以使其易于重用而不是弄乱样式,因为我已经在使用控件供应商提供的样式,并且我不想编辑它。
这是我使用的来自标记答案的解决方案
这是可以应用于任何System.Windows.Controls.Image的附加行为。
以下是如何在 Xaml 中使用它。
有关附加行为的明确定义,您可以查看System.Windows.Interactivity.Behavior类注释。行为可以选择具有附加属性,也可以使它们非常有用。
有关附加属性的明确定义,您可以阅读 MSDN 的附加属性概述。附加属性可以做任何事情,它们可以被认为是附加行为,因为它们可以触发一个动作发生,从而导致一个有效的行为,但是从技术上讲,它们仍然只是一个附加属性。
由于附加属性可以像行为一样,人们也开始将这些类型的附加属性称为附加行为,而实际上它并不是真正的附加行为,除非您从 Behavior 派生到附加属性Interaction.Behaviors集合.
与 WPF/Silverlight 中的大多数内容一样,任何附加行为或附加属性都不需要混合。