WPF8 Messagebox

时间:2014-10-02 20:01:15

标签: vb.net windows-phone-8 messagebox

我试图实现此代码:

 Dim result As MessageBoxResult = _
 MessageBox.Show("Would you like to see the simple version?", _
 "MessageBox Example", MessageBoxButton.OKCancel)

 If (result = MessageBoxResult.OK) Then
     MessageBox.Show("No caption, one button.")
 End If

但是收到错误:输入' MessageBoxResult'没有定义 为什么会这样?

我正在使用:Microsoft Visual Studio Professional 2013版本12.0.30501.00更新2 Microsoft .NET Framework版本4.5.51641

2 个答案:

答案 0 :(得分:1)

您的代码没有错。它应该工作(我自己实现)。所以它必须是一些链接错误/安装错误/或项目创建错误。

所以我们来解决,让我们试试这个:

  • 文件 - >新 - >项目
  • 选择模板 - > Visual Basic - >商店应用 - > windows Phone App - >空白应用程序(Windows Phone Silverlight)
  • 选择8.0作为目标

它应该生成一个空白的应用程序,然后让我们尝试在页面加载的事件

上创建一个MessageBox
Imports System
Imports System.Threading
Imports System.Windows.Controls
Imports Microsoft.Phone.Controls
Imports Microsoft.Phone.Shell
Imports System.Windows

Partial Public Class MainPage
    Inherits PhoneApplicationPage

    ' Constructor
    Public Sub New()
        InitializeComponent()

        SupportedOrientations = SupportedPageOrientation.Portrait Or SupportedPageOrientation.Landscape

    End Sub

    Private Sub PhoneApplicationPage_Loaded(sender As Object, e As RoutedEventArgs)
        Dim result As MessageBoxResult = _
        MessageBox.Show("Would you like to see the simple version?", _
        "MessageBox Example", MessageBoxButton.OKCancel)

        If (result = MessageBoxResult.OK) Then
        ' Do whatever
        End If

    End Sub
End Class

如果这不起作用,那么我们需要确保导入System.Windows

  • 右键单击项目 - >特性
  • 点击参考文献
  • 确保 System.Windows 有复选标记

答案 1 :(得分:0)

如果System.Windows没有解析,那么你有一个Windows Phone Runtime应用程序(针对Windows Phone 8.1)而不是Windows Phone Silverlight应用程序(适用于8.0或8.1)。 Chubosaurus的步骤将创建一个Silverlight应用程序。

您可以在解决方案资源管理器中确认,该资源管理器将显示项目的目标。要使用System.Windows和MessageBox,您需要一个Windows Phone Silverlight应用程序。

Windows Phone Silverlight 8 Windows Phone Silverlight 8.1

如果您有Windows Phone 8.1应用程序,则可以使用Windows.UI.Popups.MessageDialog代替 enter image description here

Async Function ShowMyDialog() As Task(Of Boolean)
    Dim result As Boolean = False
    Dim dialog As New Windows.UI.Popups.MessageDialog("Would you like to see the simple version?", "MessageDialog Example")
    dialog.Commands.Add(New Windows.UI.Popups.UICommand("Ok",
        Async Sub(command)
            result = True
            Dim okDialog As New Windows.UI.Popups.MessageDialog("No caption, one button.")
            Await okDialog.ShowAsync()
        End Sub))
    dialog.Commands.Add(New Windows.UI.Popups.UICommand("Cancel"))
    dialog.DefaultCommandIndex = 0
    dialog.CancelCommandIndex = 1
    Await dialog.ShowAsync()
    Return result
End Function