相关疑难解决方法(0)

如何在样式设置器中添加混合行为

我为Button创建了一个Blend行为.如何将其设置为应用程序中的所有按钮.

<Button ...>
  <i:Interaction.Behaviors>
    <local:MyBehavior />
  </i:Interaction.Behaviors>
</Button>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试:

<Style>
  <Setter Property="i:Interaction.Behaviors">
    <Setter.Value>
      <local:MyBehavior />
    </Setter.Value>
  </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

我收到了错误

"行为"属性没有可访问的setter.

c# wpf xaml expression-blend

84
推荐指数
7
解决办法
4万
查看次数

当绑定值更改时,启动动画的最佳方法是什么?

这种情况经常出现:

在视图中,您有一个绑定到ViewModel属性的控件(由INotifyPropertyChanged支持).例如:

<TextBlock Text="{Binding Path=Subtotal}"/>
Run Code Online (Sandbox Code Playgroud)

当属性发生变化时,您需要通过一些创意动画吸引用户注意这一事实.我如何利用视图已连接到通知并避免创建大量额外代码(或至少创建一次并重复使用)这一事实.数据触发器可能是最好的选择,但我不知道如何使它们在任何值变化时触发,而不是某些特定值.

我想到以下选项:

  • 在ViewModel中引发一个额外的事件,在View代码隐藏中订阅.
  • 使用转换器创建绑定到提到的属性的数据触发器,如果​​值正在更改,则返回true.
  • 创建一个绑定到ViewModel上的新布尔属性的数据触发器,用于"发出信号"更改.
  • 创建一个附加到控件的行为,该行为将订阅控件的依赖项属性更改并启动动画.

你喜欢/使用哪一个?我错过了任何选择吗?

PS如果解决方案提供了首先启动动画并在结束时反映值变化的可能性,那将是很好的(但不是关键).

data-binding wpf animation mvvm storyboard

7
推荐指数
1
解决办法
2875
查看次数

标签 统计

wpf ×2

animation ×1

c# ×1

data-binding ×1

expression-blend ×1

mvvm ×1

storyboard ×1

xaml ×1