-1

コードビハインドでテーブルのマージンを設定しようとしましたが、できません。例外があります。「別のスレッドが所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません。」私のコード:

Table table = new Table();
Image picture = GetPicture(pictureName);
double leftMargin = (MAX_PICTURE_WIDTH - picture.Width) <= 0 ? 0 : (MAX_PICTURE_WIDTH - picture.Width);
table.Margin = new Thickness(leftMargin, 0, 0, 0);

マージンを設定すると、最後の行で例外があります。なぜ?この問題をどのように解決しますか?

4

1 に答える 1

1

これを試して:

    Dispatcher.BeginInvoke(() =>
    {
        Table table = new Table();
        table.Margin = new Thickness(leftMargin, 0, 0, 0);
    });

また

     Dispatcher.BeginInvoke(delegate() 
     { 
           Table table = new Table();
           table.Margin = new Thickness(leftMargin, 0, 0, 0); 
     });

UIスレッドでテーブルを作成してみてください。

于 2013-08-12T14:53:35.330 に答える