簡體   English   中英

如何在C#中創建類似Groove Music的消息框

[英]How Can I create a Message Box like Groove Music in C#

我需要在消息框中顯示信息,如下所示:

留言框

如何創建類似的消息框?

如果您要做的只是創建一個帶有標題,文本內容和可自定義按鈕(命令)的簡單消息框,然后使用MessageDialog類。

private void showDialog()
{
    var dialog = new MessageDialog("You have unsaved changes. Continue?", "Warning");
    dialog.Commands.Add(new UICommand("OK", handler));
    dialog.Commands.Add(new UICommand("Cancel", handler));
    dialog.ShowAsync();
}

private void handler(IUICommand command)
{
    System.Diagnostics.Debug.WriteLine($"The user clicked {command.Label}");
}

MessageDialog屏幕截圖

如果您需要更多自定義內容,則需要對ContentDialog類進行子類化。 在解決方案資源管理器>添加>新建項目中右鍵單擊您的項目,然后從列表中選擇“內容對話框”。 您可以使用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>

您可以顯示如下對話框:

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
    }
}

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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM