Как использовать MultiThreading с MouseWheel Event? - PullRequest
0 голосов
/ 26 июня 2019

У меня есть приложение WPF, которое использует элемент управления UIElement, это приложение содержит 22 холста, и эти холсты скрыты, на каждом mouseWheel 3 из этого холста будут видны, как я могу сделать видимость / скрыть холст, используя 3 потока для каждоготип холста (тип холста 1: 1 для полигонов, тип холста 2: 10 для дорог, тип холста 3: 11 для узлов)?

Примечание: при каждом шаге масштабирования (шаг MouseWheel) я должен вызывать ViewPolygonLayer (), ViewSegmentsLayers () и ViewNodesLayers () Как я могу использовать 3 потока для каждого метода?

1 Ответ

0 голосов
/ 26 июня 2019

Вы уверены, что вам нужно вручную создавать и управлять всем этим самостоятельно? Вы можете написать поведение, присоединяемое к тем холстам, в котором вы можете подписывать методы на события контроллеров.

class CanvasBehaviour : Behavior<Canvas>
    {
        protected override void OnAttached()
        {
            base.OnAttached();
            this.AssociatedObject.IsVisibleChanged += this.MyMethods;
        }

        private void MyMethods(object sender, DependencyPropertyChangedEventArgs e)
        {
            // Do what you want
        }
    }

Вам нужно будет использовать using System.Windows.Interactivity;

Использование:

в вашем xaml, включите

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"

и на контроллере

<Canvas>
<i:Interaction.Behaviors>
                <myBehaviours:CanvasBehaviour />
            </i:Interaction.Behaviors>
</Canvas>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...