Blazor中监听元素的Resize事件,很遗憾的告诉你,这并做不到,但是在Blazor中却可以监听body的Resize事件。我们可以认为body的resize事件会触发元素的resize事件。下面一段代码展示了如果在你的程序中监听body的resize事情。
首先我们需要一个JS文件,它负责注册一个全局事件如下:
//https://lebang2020.cn/details/211018zyatk2ae.html
window.AddResize = function (methodName, dot) {
window.onresize = function () {
try {
dot.invokeMethodAsync(methodName);
} catch { }
};
};
接下来我们在后台调用这个方法即可
protected override async Task OnInitializedAsync()
{
await _jsRuntime.InvokeVoidAsync($"window.AddResize", "OnReSize",DotNetObjectReference.Create(this));
}
[JSInvokable("OnReSize")]
public void OnReSize(){
Console.WriteLine("窗口触发ReSize事件");
}
或者还有更简单的方法,可以关注一下这个开源项目:
https://github.com/chrissainty/BlazorBrowserResize
本文为原创。