【问题标题】:Fire a Blazor event on window resize在窗口调整大小时触发 Blazor 事件
【发布时间】:2021-10-11 00:07:10
【问题描述】:

在调整窗口大小时是否可以调用 blazor 事件?每次用户调整窗口大小时,我只需要重新启动布尔属性的值。

【问题讨论】:

  • 你可以链接到任何你想要的 javascript 事件,但它需要与 JavaScript 互操作。
  • 有一个名为 BlazorSize 的包可能对您有用
  • 正确的做法是利用 JS Interop 执行[JsInvokable] 属性化方法进行更新。在这里阅读更多:docs.microsoft.com/en-us/aspnet/core/blazor/…
  • 嗨,Leo,你解决了吗?
  • 嗨@NicolaBiada,我发现了类似的东西可以解决我的问题。我刚把它贴在这里。

标签: blazor blazor-webassembly asp.net-blazor


【解决方案1】:

我找到了一种类似的方法来解决我的问题。

首先,在 index.html 文件中设置这个脚本函数:

window.getWindowDimensions = function () {
    return {
        width: window.innerWidth,
        height: window.innerHeight
    };
};

然后在你要读取屏幕宽度的页面上,你需要读取这个函数:

[Inject] IJSRuntime JSRuntime { get; set; }
protected int WindowWidth { get; set; }
protected override async Task OnInitializedAsync()
{
    var dimension = await JSRuntime.InvokeAsync<WindowDimension>("getWindowDimensions");
    WindowWidth = dimension.Width;
}

所以每次页面重新加载时我们都知道窗口的宽度。

【讨论】:

  • 虽然不是真正的事件,是吗?如果窗口在 OnInitialized 之后调整大小怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 2010-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多