1
我有一個動態創建表單的Silverlight應用程序。在這個表單中,我有我的應用程序工作,以便標籤焦點按照表單的順序。 我的問題是,窗體是相當大的(在屏幕視圖下方),當我選擇較低的項目屏幕不會調整,因此我需要向下滾動頁面到我的標籤焦點所在的位置。Silverlight表視圖問題
是否有人知道如何設置窗體,以便具有焦點的項目始終位於屏幕的中心。
謝謝
我有一個動態創建表單的Silverlight應用程序。在這個表單中,我有我的應用程序工作,以便標籤焦點按照表單的順序。 我的問題是,窗體是相當大的(在屏幕視圖下方),當我選擇較低的項目屏幕不會調整,因此我需要向下滾動頁面到我的標籤焦點所在的位置。Silverlight表視圖問題
是否有人知道如何設置窗體,以便具有焦點的項目始終位於屏幕的中心。
謝謝
有沒有簡單或AutoMagical的方式來做到這一點。由於您似乎是自己動態創建控件,因此您可以將事件處理程序附加到每個相關控件的事件GotFocus
事件中。
您提到的「向下滾動頁面」可能表明您正在將這些控件放置在ScrollViewer
控件中(如果不更改您的代碼,則是)。
您的控件將被放置在Panel
這是ScrollViewer
的子項。
因此,GotFocus
事件處理程序的任務是發現控件相對於面板的垂直位置,然後使用其他一些計算器調用方法。
private void FormControl_GotFocus(object sender, RoutedEventArgs e)
{
FrameworkElement fe = (FrameworkElement)sender;
GeneralTranform transform = fe.Transform(myContainingPanel);
Point topLeft = transform.Transform(new Point(0, 0));
myScrollViewer.ScrollToVerticalOffset(topLeft.Y - (myScrollViewer.ViewportHeight/2) + (fe.ActualHeight/2));
}