0

对于 WP8 应用程序,我想将多边形点的 Y 值绑定到属性。但这似乎不可能,因为我在绑定行收到错误消息“XamlParseException”

这是 Xaml 代码:

       <Polygon Grid.Row="0" Fill="#66323232">
            <Polygon.Points>
                <Point X="0" Y="0"/>
                    <Point X="0" Y="{Binding HauteurPopUp}"/>
                    <Point X="1" Y="{Binding HauteurPopUp}"/>
                <Point X="1" Y="0"/>
                <Point X="0" Y="0"/>
            </Polygon.Points>
   </Polygon>

这是财产

    public Int32 HauteurPopUp
    {
        get
        {
            return 300;
        }
    }

任何想法 ?

先感谢您

4

1 回答 1

0

as I get the error message "XamlParseException"

那不是消息,那是异常Type

该消息可能Y不是 DependencyProperty,因此您无法绑定到它。这种绑定永远不会起作用。

即使绑定是可能的,一旦你更新了 Y 的值,就没有这个变化的通知,所以Polygon不会知道它的任何点已经改变了。

您需要做的是绑定到Polygon.PointsDependencyProperty类型PointCollection。不幸的是,PointCollection它没有实现任何可观察的接口,所以你不能只改变一个实例;每次更改一个点时,您必须PointCollection手动Polygon或通过设置绑定到Polygon.Points.

我不会为你编写代码,但算法是这样的

  1. 加载时,创建一个PointCollection,用它应该包含的初始Points 填充它,并设置Polygon.Points为等于这个集合(直接或通过绑定)
  2. 等待Point集合中任何个人的更改(???)
  3. 利润创建一个新的PointCollection,用(你可以重复使用相同的)填充它,Points在需要的地方应用更新,并设置Polygon.Points为等于这个实例
  4. 转到第 2 步。
于 2013-02-22T19:17:55.610 回答