winui 3开发笔记(一)

winui 开发笔记

winui开发大多参照官方文档,各种组件除了开发文档,还有winui3 gallery这个软件可以参考,高级组件参考window community toolkit gallery。

对话框与程序崩溃

界面整体为导航栏布局,如果在一个界面A中,弹出对话框之前需要执行时间
1、在还未弹出的时候切换标签页B,会导致程序崩溃。
2、在将要弹出的前一瞬间切换标签页B,会导致程序变白。
问题一:debug模式下会捕获错误,捕获在这一步await InfoDialog.ShowAsync();
解决办法:加 try catch,catch中不处理或直接return

private async void showOne_error(string subject, string msg)
{
    try
    {
        errorOneDialog.Title = subject;
        errorOneText.Text = msg;
        errorOneDialog.XamlRoot = Content.XamlRoot;
        await errorOneDialog.ShowAsync();
    }
    catch { return; }
}

问题二:debug不会捕获错误,但切换的一瞬间会发现界面A中已弹出
解决办法:在App或MainWindow中定义一个全局变量,在对话框弹出的一瞬间修改这个全局变量为false,在导航栏的切换标签页逻辑中格局这个变量的值判断是否切换标签页。

// 弹出对话框前:
MainWindow.isHaveDialog = true;
await termsOfUseContentDialog.ShowAsync();
//对话框关闭后:termsOfUseContentDialog_Closed函数
MainWindow.isHaveDialog = false;
try catch代码
catch中也要加上: MainWindow.isHaveDialog = false;

字体和背景设置

字体设置:
一直疑惑Segoe UI Bold字体怎么设置,

FontFamily="Segoe UI" FontWeight="SemiBold"

后端设置背景颜色:

//后端设置背景颜色
Background = new SolidColorBrush(Windows.UI.Color.FromArgb(0xFF, 0xF0, 0xF3, 0xF9))

其它

1、win11下开发的运行警告

严重性 代码 说明 项目 文件 行 禁止显示状态
警告 DEP0840: 项目“App1 (Package)”需要版本 >= “3000.882.2207.0” 的包 “M
icrosoftCorporationII.WinAppRuntime.Main.1.3_8wekyb3d8bbwe” 和 “MicrosoftCorp
orationII.WinAppRuntime.Singleton_8wekyb3d8bbwe”。应该在首次运行时安装这些包,
如果未安装,请访问 http://go.microsoft.com/fwlink/?linkid=2222757 以获取安装说明。 App1 (Package)
还没解决,win10开发没有这种情况

richtextbox

富文本还是文本,在对话框中,双击,有时会导致程序崩溃

你可能感兴趣的:(操作栏,笔记)