我有使用UIElement控件的WPF应用程序,此应用程序包含22个画布,并且这些画布是隐藏的,在每只鼠标上这些画布的轮子3都是可见的,我如何通过对每个画布使用3个线程来使画布可见/隐藏画布的类型(对于多边形,类型1:1画布;对于道路,类型2:10画布;对于节点,类型3:11画布)?
注意:每个缩放步骤(MouseWheel步骤),我都应该调用ViewPolygonLayer(),ViewSegmentsLayers()和ViewNodesLayers() 每种方法如何使用3个线程?
答案 0 :(得分:0)
确定要自己手动创建和管理所有内容吗? 您可以编写可附加到这些画布的行为,在其中您可以将方法订阅控制器事件。
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>