有什么方法可以覆盖默认的窗口最小化按钮逻辑吗?我需要它来添加window.Hide()到它,这样我的窗口将被隐藏的同时,它将被最小化.

我已经找到了this篇文章,但我正在努力让它与Windows中的窗口最小化逻辑挂钩.

这可用于隐藏和显示ViewModel中的窗口,例如:

private void OnShowHideWindow()
{
  var window = Application.Current?.MainPage?.Window;
  if (window == null)
  {
    return;
  }

  if (this.IsWindowVisible)
  {
    window.Hide();
  }
  else
  {
    window.Show();
  }
  this.IsWindowVisible = !this.IsWindowVisible;
}

推荐答案

为了进一步解释张的回答(顺便说一句,回答得很好),你不需要那些介绍电话.如果您想要在您的应用程序中实现此功能,请将其放入App()中,然后像这样简单地完成:

using Microsoft.Maui.Platform;
#if WINDOWS
using Microsoft.UI.Windowing;
#endif
...
public App()
{
    InitializeComponent();
    Microsoft.Maui.Handlers.WindowHandler.Mapper.AppendToMapping(nameof(IWindow), (handler, view) =>
    {
#if WINDOWS
        var nativeWindow = handler.PlatformView;
        var appWindow = nativeWindow.GetAppWindow();
        if (appWindow is not null)
        {
            appWindow.Changed += (sender, args) =>
            {
                if (appWindow.Presenter is OverlappedPresenter overlappedPresenter)
                {
                    if (args.DidPresenterChange && overlappedPresenter.State == OverlappedPresenterState.Minimized)
                    {
                        appWindow.Hide();
                        Thread.Sleep(5000);
                        nativeWindow.Activate();
                    }
                }
            };
        }

#endif
    });

    MainPage = new AppShell();
}

Csharp相关问答推荐

发布.NET框架项目将.NET核心元素注入到web. connect中

System.Data.SQLite:判断SQLite数据库是否为空(任何表中至少有一行)

需要深入了解NpgSQL DateTimeOffset处理

如何使用C#和Graph API从Azure Directory获取用户详细信息

如何模拟耐久任务客户端在统一测试和获取错误在调度NewsListationInstanceAsync模拟设置

XUNIT是否使用测试数据的源生成器?

从c#列表中删除额外的对象&对象&>从ASP.NET WebForm返回json响应

如何在C#中从正则表达式中匹配一些数字但排除一些常量(也是数字)

UWP中的任务和界面

为什么C#认为这个非托管 struct 有一个重叠

将内置的OrderedEumable&Quot;类设置为内部类有什么好处?

如何将FindAll()与Nuget包Interop.UIAutomationClient一起使用

在使用UserManager时,如何包含与其他实体的关系?

为什么我不能从我的异步任务方法中返回异步任务方法?

是否可以在Entity Framework Core中使用只读 struct 作为拥有实体?

Visual Studio如何使用当前的框架?

仅在Blazor Web App中覆盖生产的基本路径(.NET8中的_Hosts.cshtml文件功能?)

在使用.NET EF Core DbContext属性之前,是否应使用null判断

嵌套Blazor组件内的验证

使用ITfoxtec.Identity.Saml2解析相同键多值SAML 2声明