UWP 中的自定义内容对话框包含 3 个以上按钮

2023-11-23

我想显示一个内容对话框,其中包含比传统的主要和次要结果更多的内容。由于我无法重写 ContentDialogResult 枚举并向该属性添加选项,因此我似乎唯一的选择可能是创建自己的自定义控件,其工作方式与 ContentDialog 类似。

对于其他上下文:通常,人们可能会在计算机/应用程序操作期间看到一个对话框,当该操作是多余时,即将文件复制到文件夹,计算机通常会提供一个对话框,其中不是 2 个选项,而是 4 个选项。 - > “全部是”、“全部否”、“是”、“否”。我似乎找不到任何千篇一律的方法来利用这种看似常见的做法。
我想像普通内容对话框一样使用它,如下所示:

var dialog = new MyCustomContentDialog();
var result = dialog.ShowAsync();

然后像正常的 ContentDialog 一样返回一个枚举,但让它返回 4 个选项中的 1 个,而不仅仅是 2 个。

任何帮助或建议都会很棒。谢谢。


我想显示一个内容对话框,其中包含比传统的主要和次要结果更多的内容。

The 内容对话框有 2 个内置按钮(主/辅助按钮),可让用户响应对话框。如果您希望有更多按钮让用户响应对话框,您应该可以通过在对话框内容中包含这些按钮来实现此目的。

以下是一个简单的示例,展示了如何创建和使用带有 3 个按钮的自定义对话框:

MyCustomContentDialog.xaml

<ContentDialog
x:Class="ContentDialogDemo01.MyCustomContentDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ContentDialogDemo01"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Name="dialog"
Title="Delete">

<!-- Content body -->
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Margin="0,20">
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition Height="200" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <TextBlock Grid.ColumnSpan="3" Text="Delete file A?" Margin="5" />
    <Button Grid.Row="1" Content="Yes" x:Name="btn1" Click="btn1_Click" Margin="5,0" Width="100" />
    <Button Grid.Row="1" Grid.Column="1" Content="No" x:Name="btn2" Click="btn2_Click" Margin="5,0" Width="100" />
    <Button Grid.Row="1" Grid.Column="2" Content="Cancle" x:Name="btn3" Click="btn3_Click" Margin="5,0" Width="100" />
</Grid>
</ContentDialog>

MyCustomContentDialog.xaml.cs

namespace ContentDialogDemo01
{
// Define your own ContentDialogResult enum
public enum MyResult
{
    Yes,
    No,
    Cancle,
    Nothing
}

public sealed partial class MyCustomContentDialog : ContentDialog
{
    public MyResult Result { get; set; }

    public MyCustomContentDialog()
    {
        this.InitializeComponent();
        this.Result = MyResult.Nothing;
    }

    // Handle the button clicks from dialog
    private void btn1_Click(object sender, RoutedEventArgs e)
    {
        this.Result = MyResult.Yes;
        // Close the dialog
        dialog.Hide();
    }

    private void btn2_Click(object sender, RoutedEventArgs e)
    {
        this.Result = MyResult.No;
        // Close the dialog
        dialog.Hide();
    }

    private void btn3_Click(object sender, RoutedEventArgs e)
    {
        this.Result = MyResult.Cancle;
        // Close the dialog
        dialog.Hide();
    }
}
}

以下是显示自定义对话框并使用返回的自定义结果的代码:

private async void ShowDialog_Click(object sender, RoutedEventArgs e)
{
    // Show the custom dialog
    MyCustomContentDialog dialog = new MyCustomContentDialog();
    await dialog.ShowAsync();

    // Use the returned custom result
    if (dialog.Result == MyResult.Yes)
    {
        DialogResult.Text = "Dialog result Yes.";
    }
    else if (dialog.Result == MyResult.Cancle)
    {
        DialogResult.Text = "Dialog result Canceled.";
    }
    else if (dialog.Result == MyResult.No)
    {
        DialogResult.Text = "Dialog result NO.";
    }
}

Here is the entire sample. Following is the output: enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UWP 中的自定义内容对话框包含 3 个以上按钮 的相关文章

随机推荐

  • 如何使用 JUnit 测试 Java 中的抽象类?

    我是使用 JUnit 进行 Java 测试的新手 我必须使用 Java 并且我想使用单元测试 我的问题是 我有一个带有一些抽象方法的抽象类 但有些方法并不是抽象的 如何使用 JUnit 测试此类 示例代码 非常简单 abstract cla
  • MongoDB:跨集合查询

    假设这样的设置 blogposts title Example slug example post tags foo bar title Example2 slug example2 tags foo news headline Test
  • CSRF 失败:CSRF 令牌丢失或不正确

    我正在使用 Django 1 7 和 django rest framework 我创建了一个 API 它返回一些 JSON 数据 将其放入我的settings py REST FRAMEWORK DEFAULT PERMISSION CL
  • 结构构造函数:“在控制权返回给调用者之前,必须完全分配字段。”

    这是我正在尝试编写的结构 public struct AttackTraits public AttackTraits double probability int damage float distance Probability pro
  • Android 材料设计

    新的Android Material Design是否支持旧版本的Android 例如3 0或2 1 如果支持的话会是什么样子 作为真正的材料设计还是只是旧设计 我即将使用材料设计主题更新我的应用程序 那么有人已经这样做了吗 就材料设计这一
  • 为什么 mac chrome 上的选择框不响应点击事件? [复制]

    这个问题在这里已经有答案了 可能的重复 JQuery 函数不适用于 Mac 上的 Chrome 但适用于 Win 7 上的 Chrome 和所有其他浏览器 我有一个选择选项列表 div class social option div
  • 带标题的 window.open

    我可以控制发送的 HTTP 标头吗window open 跨浏览器 如果没有 我可以以某种方式window open然后在弹出窗口中使用自定义标头发出我的请求的页面 我需要一些狡猾的技巧 我可以控制window open 跨浏览器 发送的H
  • 在 Android Marshmallow 中请求多个蓝牙权限

    我正在开发一个具有连接功能的应用程序 该应用程序连接到使用 SDK 23 进行编译的蓝牙设备 我在请求蓝牙的多个权限时遇到问题 这是我到目前为止所做的 Override public void onStart super onStart i
  • 这里如何去掉trace0呢?

    信息 trace0 始终显示在蓝线的悬停文本框旁边 如何删除它 为什么不在橙线上 Trace0到底是什么意思 library plotly fig lt plot ly fig lt fig gt add trace type scatte
  • C#更改框架错误

    我正在运行 Visual Studio 2010 我只是将项目的框架从 4 0 更改为 3 5 我删除了它要求我删除的引用 Microsoft Framework 然后尝试编译 我现在收到错误 错误 1 无法加载文件或 装配 系统 绘图 版
  • 海湾合作委员会优化?漏洞?及其对项目的实际意义

    我的问题分为三个部分 问题1考虑下面的代码 include
  • 从路径字符串中获取类似树的结构

    我已经被困了两天了 因为我对指针和递归不太坚定 我有一系列类似路径的结构 可以说 s string a b c a b g a d 具有这样的数据结构 type Node struct Name string json name Child
  • 如何在RecyclerView中选择和取消选择项目?如何仅在回收者视图中突出显示所选项目?

    Override public void onBindViewHolder final mainscreenspecializationadap MyViewHolder holder final int positionz this po
  • 如何访问ThreadPoolExecutor内部正在运行的线程?

    我有一个正在运行的线程队列 并且希望在执行时公开其一些数据 以监视进程 ThreadPoolExecutor提供对其队列的访问 我可以迭代这些对象来调用我的重写toString 方法 但这些只是等待执行的线程 有没有办法访问当前正在运行的线
  • CSS Translate:translate() 属性最终的用途是什么?

    在 CSS3 中 动画是在各种供应商前缀下引入的 并带有过渡属性 现在 至少在纯 CSS 中 有两种方法可以使元素改变位置 将元素的位置设置为绝对位置并进行调整left right top and bottom Using vendor t
  • 当主线程繁忙时如何让Qt工作?

    我的程序的主线程 函数 main 在那里 是为非 GUI 任务保留的 它调用了许多冗长的计算函数 所有实现的 GUI 都在单独的线程中完成其工作 我现在将使用 Qt 实现另一个 GUI Qt 文档说所有与 GUI 相关的任务都应该在主线程中
  • 如何在本地下载pip依赖项? [复制]

    这个问题在这里已经有答案了 我正在运行我的 python 应用程序requirements txt包含各种依赖项的文件 我正在 Pivotal Cloud Foundry 环境中部署此应用程序 然而 我在其中部署的环境是气隙的 因此我似乎无
  • Django URLS,使用 ?在网址中

    我正在尝试进行一些 Django URL 匹配 我想要一些我有的网址http mysite com base sort type1 http mysite com base sort type2 etc 我不知道如何 URL 匹配这些表达式
  • 配置来自 Nifi 的 HTTP POST 请求

    我正在尝试从 REST 客户端访问 WCF 服务 我正在从 REST 客户端向 WCF 服务发送 POST 请求 详细如下 供大家参考 The 服务合同定义如下 ServiceContract public interface IBZTso
  • UWP 中的自定义内容对话框包含 3 个以上按钮

    我想显示一个内容对话框 其中包含比传统的主要和次要结果更多的内容 由于我无法重写 ContentDialogResult 枚举并向该属性添加选项 因此我似乎唯一的选择可能是创建自己的自定义控件 其工作方式与 ContentDialog 类似