从变量中调暗窗口

时间:2014-02-20 16:05:16

标签: .net wpf vb.net

我正在创建一个使用UserControl将图标加载到屏幕上的窗口。单击这些图标后,目标是在WPF中打开相应的窗口或页面。

这是我的问题:

Sub openApp(obj As Object, e As MouseButtonEventArgs)

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

End Sub

通常在这里,我会有一些代码:昏暗的窗口作为新的窗口bla bla。但现在我需要使用“app”变量作为我的窗口名称。我如何做这个,如果没有做很长的功能来检查我系统中的所有应用程序?

非常感谢有关此问题的任何帮助

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

此代码基本上将采用您的字符串,并打开一个具有完全相同名称的相应窗口。如果不存在具有相同名称的窗口,则只会抛出异常错误。