2014-02-20 38 views
1

我正在創建一個窗口,該窗口使用UserControl將圖標加載到屏幕上。一旦我點擊這些圖標,目標就是在WPF中打開相應的窗口或頁面。Dim a Window from Variable

Here's我的問題:

Sub openApp(obj As Object, e As MouseButtonEventArgs) 

    Dim app As Object = TryCast(e.Source, UserControl.ucMenuAppIcon).Name 

End Sub 

通常在這裏,我想有這樣一些代碼:Dim Windows作爲新窗口中喇嘛喇嘛。但是現在我需要使用「app」變量作爲我的窗口名稱。我如何做到這一點,而不是做一個很長的if函數來檢查系統中的所有應用程序?

在這個問題上的任何幫助,將不勝感激

回答

0

感謝Harshana,但它不是我想要的。這是一個適用於WPF的代碼。對於仍然使用Winforms的用戶(請使用Forms而不是Windows)。

Dim objForm As Window 
    Dim FormInstanceType As Type 

    Dim appStr As String = "AplicationNameSpace_GoesHere." + TryCast(e.Source, UserControl.ucMenuAppIcon).Name 

    Try 
     FormInstanceType = Type.GetType(appStr, True, True) 

     objForm = CType(Activator.CreateInstance(FormInstanceType), Window) 
     objForm.Show() 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    End Try 

這段代碼基本上把你的字符串,並打開一個完全相同的名稱相應的窗口。如果具有相同名稱的窗口不存在,它只會引發異常錯誤。

0

在主窗口的代碼如下,

Private Sub btn_details_click(sender As Object, e As RoutedEventArgs) 
    Dim window__1 As Window = Window.GetWindow(Me) 
    window__1.Opacity = 0.3 
    Dim popUpwindow As New PopUpWindow("name", "x", "y") 
    popUpwindow.ShowDialog() 
End Sub 

然後添加一個構造函數中PopUpWindow如下,

Function PopUpWindow(name As String, x As Double, y As Double) As [Public] 
    InitializeComponent() 

    Dim window__1 As Window = Window.GetWindow(Me) 
    window__1.Width = x 
    window__1.Height = y 
End Function 
+0

好的,但我需要全尺寸的窗戶。另外我需要以某種方式傳遞名稱。該代碼將用於動態加載應用程序圖標的MainMenu。一旦用戶點擊一個圖標,它應該打開該窗口。我需要傳遞名稱,然後對窗口進行尺寸調整。我怎樣才能做到這一點?? – CogentP

+0

我將編輯我的答案。你必須在彈出的窗口上創建一個新的構造函數。 –

相關問題