WPF隐藏图像

时间:2013-12-19 16:02:05

标签: wpf vb.net image wpf-controls

我正在尝试使用以下代码隐藏我目前在WPF上的所有图像:

Dim theImgs() As Controls.Image = {picNextTopic1, picNextTopic2, picNextTopic3, picNextTopic4, picNextTopic5, picNextTopic6, picNextTopic7, picNextTopic8, picNextTopic9, picNextTopic10, picNextTopic11, picNextTopic12, picNextTopic13, picNextTopic14, picNextTopic15, picNextTopic16}

Dim intX As Integer = 0

Do Until intX = theImgs.Length
   Try
      theImgs(intX).Visibility = Visibility.Hidden
      intX += 1
   Catch ex As Exception
      MsgBox(ex.Message)
   End Try
Loop

但是,在运行上面的代码时,我收到此错误:

调用线程无法访问此对象,因为另一个线程拥有它

如何解决此错误?

2 个答案:

答案 0 :(得分:1)

变化:

theImgs(intX).Visibility = Visibility.Hidden;

要:

C#

Application.Current.Dispatcher.Invoke(new Action(() => 
    {
        theImgs[intX].Visibility = Visibility.Hidden; 
    });

VB

Application.Current.Dispatcher.Invoke(
    Function(){ 
        theImgs(intX).Visibility = Visibility.Hidden 
    }
)

答案 1 :(得分:0)

尝试链接here

以下代码应该可以正常工作:

Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, _
New Action(Function() theImgs(intX).Visibility = Visibility.Hidden))