【问题标题】:How to bind to a float2如何绑定到 float2
【发布时间】:2014-11-25 16:29:47
【问题描述】:

我试过这些:

<effects:HighPass InputSize="{Binding Width},{Binding Height}"/>

<effects:HighPass InputSize="{Binding Width} {Binding Height}"/>

<effects:HighPass InputSize="{Binding Width Height}"/>

但它们都不起作用。

但是,如果我像这样直接传入值:

<effects:HighPass InputSize="512.0,256.0"/>

它有效。

【问题讨论】:

  • 您可以创建一个属性,其'get 返回正确类型的值。
  • HighPass 是我的自定义 HLSL 着色器。 InputSize 是一个 float2 属性。我更新了我的帖子。直接传入512.0,256.0按预期工作。我认为绑定时我的语法不正确。
  • 我的意思是你试图将 2 个属性绑定到一件事上。例如,是什么阻止您创建类似于 get { return new float2(Width, Height); }(伪代码)的属性,然后绑定到该属性?
  • 我明白了。我会这样做的,谢谢。

标签: wpf data-binding binding wpf-controls


【解决方案1】:

试试下面的代码。

<effects:HighPass>
       <effects:HighPass.InputSize Width="{Binding Width}" Height={Binding Height} />
 </effects:HighPass>

希望这会有所帮助。

【讨论】:

  • 这里假设目标绑定对象有两个属性,名为Width和Height
  • 我相信上面的方法行不通,因为 float2 可能没有任何属性,而不是这两个是匿名的内部属性。可能您可以使用@rshepp 提供的解决方案。或者使用转换器返回 float2 类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-30
  • 2015-03-10
  • 2017-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多