我有一個出現在另一個頂部的Silverlight控件(圖片彈出框)。在這個彈出控件中,我有一個帶有堆棧面板(實例名稱= spMain,orientation = vertical)的scrollview(height = 250)。在堆棧面板的內容中有幾個文本框堆疊在一起。當我從文本框標籤到文本框時,scrollviewer會自動向底部移動(我在事件處理程序中編寫了代碼,所有文本框都鏈接到了這個)。關閉彈出框時超出範圍錯誤
我遇到的問題是當我試圖關閉彈出控件時,我收到一個錯誤,指出該值不在預期的範圍內。
if (sender is TextBox)
{
TextBox tb = (TextBox)sender;
try
{
// Code bombs out here when I attempt to close out the pop-up control
Point pt = tb.TransformToVisual(spMain).Transform(new Point());
if (pt.Y >= scrollViewerHeight - tb.ActualHeight)
{
svMain.UpdateLayout();
svMain.ScrollToVerticalOffset(scrollViewerHeight += pt.Y);
}
}
catch (ArgumentException aex)
{
// Don't want to eat the exception
string errorMessage = aex.Message;
System.Diagnostics.Debug.WriteLine(errorMessage);
}
}
我並不感到驚訝,我發現了錯誤,因爲它似乎有道理,但我正在尋找的是某種類型的用戶控制卸載事件或防止問題的代碼的執行。
有沒有人有關於如何去做這件事的任何想法?
爲什麼上面的代碼在關閉彈出窗口時觸發? – Bryant 2009-11-04 20:53:01