C# 如何在C中创建类似Groove Music的消息框

C# 如何在C中创建类似Groove Music的消息框,c#,uwp,messagebox,C#,Uwp,Messagebox,我需要在如下消息框中显示信息: private async Task displayDialogAsync() { var dialog = new MyDialog(); // Whatever you named your ContentDialog subclass var result = await dialog.ShowAsync(); if (result == ContentDialogResult.Primary) { //

我需要在如下消息框中显示信息:

private async Task displayDialogAsync()
{
    var dialog = new MyDialog();  // Whatever you named your ContentDialog subclass
    var result = await dialog.ShowAsync();

    if (result == ContentDialogResult.Primary)
    {
        // User clicked OK
    }
    else if (result == ContentDialogResult.Secondary)
    {
        // User clicked Cancel
    }
}


如何创建类似的消息框?

如果您只想创建一个带有标题、文本内容和可自定义按钮命令的简单消息框,请使用该类

如果您需要更自定义的东西,那么您需要对该类进行子类化。在“解决方案资源管理器”>“添加”>“新建项”中的项目上单击鼠标右键,然后从列表中选择“内容对话框”。您可以使用XAML编辑器自定义对话框的外观,选择要显示的按钮等

<ContentDialog
    x:Class="App9.MyDialog"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App9"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    PrimaryButtonText="OK"
    SecondaryButtonText="Cancel">

    <Grid>
        <TextBlock TextWrapping="Wrap">
            <Run>
                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed aliquet iaculis sapien, in lacinia sem auctor quis.
                Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam finibus eu sapien quis
                ultricies. In tristique nec magna quis fermentum. Pellentesque elit urna, tincidunt sit amet suscipit non, lacinia
                vitae orci. Etiam vel tortor neque.
            </Run>
            <LineBreak/>
            <LineBreak/>
            <Run>
                Integer dictum tortor at quam feugiat, vel eleifend neque accumsan. Maecenas
                pellentesque, augue sed vulputate placerat, erat urna aliquam erat, a posuere mi massa vitae velit. Donec gravida
                dui quis tortor semper, vel efficitur leo ultricies. Sed tincidunt ultrices dui, vitae congue purus venenatis a.
                Ut aliquam neque leo, a vehicula nisl fermentum elementum. In euismod, erat ac congue fermentum, dui nunc ultrices
                tellus, vitae fringilla risus felis at tortor.
            </Run>
        </TextBlock>
    </Grid>
</ContentDialog>

您不必为ContentDialog创建子类即可使用它:

ContentDialog CD_Popup = new ContentDialog();

CD_Popup.Title = "Title";
CD_Popup.Content = "Content";
CD_Popup.PrimaryButtonText = "Primary button text";
CD_Popup.PrimaryButtonClick += (sender, args) =>
{
    // Primary button method
};
CD_Popup.SecondaryButtonText = "Secondary button text";
CD_Popup.SecondaryButtonClick += (sender, args) =>
{
    // Secondary button method
};

await CD_Popup.ShowAsync();

我试图使我的消息框看起来与此类似。如果您有自定义内容,例如,可以在XAML编辑器中设计的字符串以外的内容,或者如果它需要自定义代码(例如验证表单),则应将其子类化。对于简单的字符串内容对话框,MessageDialog就足够了。@DecadeMoon我知道,但ContentDialog在手机上的位置不同,它位于顶部,不居中,在PC上看起来与在手机上一样-不使用旧的W8设计。
ContentDialog CD_Popup = new ContentDialog();

CD_Popup.Title = "Title";
CD_Popup.Content = "Content";
CD_Popup.PrimaryButtonText = "Primary button text";
CD_Popup.PrimaryButtonClick += (sender, args) =>
{
    // Primary button method
};
CD_Popup.SecondaryButtonText = "Secondary button text";
CD_Popup.SecondaryButtonClick += (sender, args) =>
{
    // Secondary button method
};

await CD_Popup.ShowAsync();