Canvas не обновляется, если окно WPF не перемещено - PullRequest
1 голос
/ 09 апреля 2011

У меня есть простое окно WPF с Canvas, а у Canvas есть объект Path с GeometryGroup внутри Path:

<Path
      Stroke="Red"
      StrokeThickness="3">
    <Path.Data>
        <GeometryGroup Children="{Binding Elements}" />
    </Path.Data>
</Path>

Итак, я инициализирую коллекцию Elements перед вызовом InitializeComponent(), и она отображается правильно. После этого, используя System.Timers.Timer, я обновляю существующие точки фигуры, чтобы они двигались. Это работает. Но проблема в том, что Canvas обновляет свой результат только тогда, когда окно WPF перемещается мышью. Если я оставлю это там, то там просто висит последнее изображение, но очки обновляются.

Я вижу это, когда снова начинаю перемещать окно WPF и фигуры переходят в свое последнее местоположение.

Любые идеи о том, как это исправить и почему он это делает?

1 Ответ

1 голос
/ 09 апреля 2011

Вам необходимо реализовать INotifyPropertyChanged в классе, к которому вы привязываетесь, а список элементов должен реализовывать INotifyCollectionChanged, как ObservableCollection.Как только вы это сделаете, таймеры или диспетчеры не нужны.

...