반응형
Universal Apps MessageBox :“ 'MessageBox'라는 이름이 현재 컨텍스트에 없습니다.”
WP8.1 앱에서 다운로드 오류를 표시하기 위해 MessageBox를 사용하고 싶습니다.
나는 추가했다 :
using System.Windows;
하지만 입력 할 때 :
MessageBox.Show("");
오류가 발생합니다.
"The name 'MessageBox' does not exist in the current context"
개체 브라우저에서 이러한 클래스가 존재해야하며 "프로젝트-> 참조 추가 ...-> 어셈블리-> 프레임 워크"에 모든 어셈블리가 참조 된 것으로 표시됩니다.
내가 뭔가를 놓친 건가요? 아니면 메시지 상자와 같은 것을 표시하는 다른 방법이 있습니까?
유니버설 앱의 경우 새 API를 사용하려면 await MessageDialog().ShowAsync()
(Windows.UI.Popups에서) 사용 하여 Win 8.1과 일치해야합니다.
var dialog = new MessageDialog("Your message here");
await dialog.ShowAsync();
ZombieSheep의 답변에 추가하고 싶었습니다. 또한 사용자 정의는 매우 간단합니다.
var dialog = new MessageDialog("Are you sure?");
dialog.Title = "Really?";
dialog.Commands.Add(new UICommand { Label = "Ok", Id = 0 });
dialog.Commands.Add(new UICommand { Label = "Cancel", Id = 1 });
var res = await dialog.ShowAsync();
if ((int)res.Id == 0)
{ *** }
이 시도:
using Windows.UI.Popups;
암호:
private async void Button_Click(object sender, RoutedEventArgs e)
{
MessageDialog msgbox = new MessageDialog("Would you like to greet the world with a \"Hello, world\"?", "My App");
msgbox.Commands.Clear();
msgbox.Commands.Add(new UICommand { Label = "Yes", Id = 0 });
msgbox.Commands.Add(new UICommand { Label = "No", Id = 1});
msgbox.Commands.Add(new UICommand { Label = "Cancel", Id = 2 });
var res = await msgbox.ShowAsync();
if ((int)res.Id == 0)
{
MessageDialog msgbox2 = new MessageDialog("Hello to you too! :)", "User Response");
await msgbox2.ShowAsync();
}
if ((int)res.Id == 1)
{
MessageDialog msgbox2 = new MessageDialog("Oh well, too bad! :(", "User Response");
await msgbox2.ShowAsync();
}
if ((int)res.Id == 2)
{
MessageDialog msgbox2 = new MessageDialog("Nevermind then... :|", "User Response");
await msgbox2.ShowAsync();
}
}
"예"또는 "아니오"를 클릭 할 때 일부 기능을 트리거하려면 다음을 사용할 수도 있습니다.
msgbox.Commands.Add(new UICommand("Yes", new UICommandInvokedHandler(this.TriggerThisFunctionForYes)));
msgbox.Commands.Add(new UICommand("No", new UICommandInvokedHandler(this.TriggerThisFunctionForNo)));
다음과 같은 수업을 만들 수도 있습니다. 코드 아래에 사용 예가 있습니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.UI.Popups;
namespace someApp.ViewModels
{
public static class Msgbox
{
static public async void Show(string mytext)
{
var dialog = new MessageDialog(mytext, "Testmessage");
await dialog.ShowAsync();
}
}
}
수업에서 사용하는 예
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace someApp.ViewModels
{
public class MyClass{
public void SomeMethod(){
Msgbox.Show("Test");
}
}
}
public sealed partial class MainPage : Page {
public MainPage() {
this.InitializeComponent();
}
public static class Msgbox {
static public async void Show(string m) {
var dialog = new MessageDialog( m);
await dialog.ShowAsync();
}
}
private void Button_Click(object sender, RoutedEventArgs e) {
Msgbox.Show("This is a test to see if the message box work");
//Content.ToString();
}
}
새 UWP 앱 (Windows 10부터 시작)의 경우 대신 ContentDialog 를 사용하는 것이 좋습니다 .
예 :
private async void MySomeMethod()
{
ContentDialog dlg = new ContentDialog()
{
Title = "My Content Dialog:",
Content = "Operation completed!",
CloseButtonText = "Ok"
};
await dlg.ShowAsync();
}
사용법 :
private void MyButton_Click(object sender, RoutedEventArgs e)
{
MySomeMethod();
}
비고 : 당신은 다른 스타일 등을 사용할 수 있습니다 ContentDialog
. ContentDialog의 다양한 사용법은 위의 링크를 참조하십시오.
반응형
'developer tip' 카테고리의 다른 글
버퍼를 stream2 Readable 스트림으로 래핑하는 방법은 무엇입니까? (0) | 2020.12.06 |
---|---|
Android에서 프로그래밍 방식으로 TextView TextAppeareance 설정 (0) | 2020.12.06 |
옵션을 변환하는 방법 (0) | 2020.12.06 |
모든 CALayer의 하위 계층 제거 (0) | 2020.12.06 |
Response :: download를 사용하여 laravel에서 파일 다운로드 (0) | 2020.12.06 |