UWP 是/否popup界面和另一件事

Roy Li - MSFT 32,721 信誉分 Microsoft 供应商
2024-05-21T07:36:23.0733333+00:00

今天,我遇到两个问题。

1.    我想制作一个带有“是/否”选项的弹出窗口,然后使用选择结果。

2.    另一件事是我正在使用Numberbox的 NuGet,因为 Visual Studio 2022 缺少它,或者我遗漏了什么?问题是这个 NuGet 并不完美,事实上它有漏洞。有没有一种方法可以找到一个完美的用来计算的文本框?

 

此问题由UWP C# Yes/No pop-up window and one more thing. - Microsoft Q&A总结而来.

通用 Windows 平台 (UWP)
通用 Windows 平台 (UWP)
一个 Microsoft 平台,用于生成和发布适用于 Windows 桌面设备的应用。
32 个问题
0 个注释 无注释
{count} 票

1 个答案

排序依据: 非常有帮助
  1. Junjie Zhu - MSFT 16,146 信誉分 Microsoft 供应商
    2024-05-21T08:25:42.45+00:00

    你好

    1.    我想制作一个带有“是/否”选项的弹出窗口,然后使用选择结果。

    建议使用 MessageDialog 类,它可以满足您的需求。

    Page.xaml

    <Button Content="Button" Margin="694,478,0,0" VerticalAlignment="Top" Click="Button_Click" Height="104" Width="170"/> 
    
    

    Page.xaml.cs

       <TextBlock x:Name="tb"  Margin="203,182,203,649" FontSize="20"/>
    private void Button_Click(object sender, RoutedEventArgs e)  
        {  
            this.tb.Text = "";       
            ShowMessageDialog();  
               
        }  
        private async void ShowMessageDialog()  
        {  
            var msgDialog = new Windows.UI.Popups.MessageDialog("I am a reminder") { Title = "Tip title" };  
            msgDialog.Commands.Add(new Windows.UI.Popups.UICommand("OK", uiCommand => { this.tb.Text = $"You click:{uiCommand.Label}"; }));  
            msgDialog.Commands.Add(new Windows.UI.Popups.UICommand("Cancel", uiCommand => { this.tb.Text = $"You click:{uiCommand.Label}"; }));  
            await msgDialog.ShowAsync();  
        }
    

    2.    另一件事是我正在使用Numberbox的 NuGet,因为 Visual Studio 2022 缺少它,或者我遗漏了什么?问题是这个 NuGet 并不完美,事实上它有漏洞。有没有一种方法可以找到一个完美的用来计算的文本框?

    直接使用 NumberBox 似乎不能满足您的需求。 在 TextBox 中使用这样的正则表达式,在用户输入非数字字符时删除该字符。

    Page.xaml

    <TextBox TextChanged="TextBox_TextChanged" />
    

    Page.xaml.cs

    private void TextBox_TextChanged(object sender, TextChangedEventArgs e)  
        {  
            var textbox = (TextBox)sender;  
            if (!Regex.IsMatch(textbox.Text, "^\\d*\\.?\\d*$") && textbox.Text != "")  
            {  
                int txtPos = textbox.SelectionStart - 1;  
                textbox.Text = textbox.Text.Remove(txtPos, 1);  
                textbox.SelectionStart = txtPos;  
            }       
        }
    
    
    

    谢谢!


    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想接收电子邮件通知,请按照我们的文档中的步骤启用电子邮件通知 此线程的相关电子邮件通知。

    0 个注释 无注释